Как скрыть url
Собственно задача в том что бы пользователь не смог узнать url изображения. Возможно ли это реализовать средствами JS?
|
Задача стоит такая, требуется решение. Тема открыта.
|
Можно url создавать динамически, чтобы он был действительным в течение минуты или часа. Это если нужно, чтобы нельзя было потом к нему обращаться.
Или стоит задача скрыть сервер на котором хранится изображение? |
Задача в том, чтобы пользователь не смог скачать изображение?
|
Задача только в сокрытии url. Пока нашел адекватное решение реализовать только на стороне сервера. Интересно можно ли сделать это средствами браузера и JS?
|
Извините, а вы можете пояснить, что вы понимаете под "сокрытием url"? Вам нужно, чтобы в аттрибуте src не было видно url'а, по которому доступна эта картинка? И для чего вам это нужно?
|
повесьте событие oncontextmenu и делов
|
Да именно сокрытие атрибута src. Суть в том что есть архив из которого грузятся фото. В зависимости от разграничения прав должны фильтроваться позиции. Одном словом что бы пользователь знал имя файла но не где он лежит. Хотелось бы усложнить получение url корневой папки.
|
Ну, так вы ничего не добьетесь.
максимум вы можете чуть замедлить пользователя, и вместо одного клика ему придется сделать чуточку больше телодвижений. но через 2 минуты у него все равно будет URL файла Правильным решением будет не скрывать URL-ы, а правильно отображать контент по ним. Если пользователь1 имеет право увидеть картинку по ссылке http://site.ru/images/1.jpg, то показываем ему эту картинку. А если пользователь2 не имеет прав для просмотра этой картинки, то по этой же ссылке он не должен увидеть оригинальную картинку. Это правильное решение, которое надо использовать в данной ситуации |
Значит сокрыть корневую папку полностью можно только со стороны сервера - например заменяя временную псевдо-ссылку на реальную ссылку (нагрузка на базу данных) или расшифровывая зашифрованную псевдо-ссылку. А затем отдавая картинку.
Если будут применяться другие методы - на стороне пользователя, то обязательно найдется тот, кто взломает эту легкую защиту. Достаточно просто поставить сниффер или файерволл заставить спрашивать можно ли обратиться туда-то за тем-то: даже не понадобится расшифровывать джаваскрипт или flash. Ссылки с которых берутся изображения сразу будут видны. То есть вопрос в том насколько прочная защита нужна. На сервере это проще, быстрее и надежнее сделать. Только чуть возрастет нагрузка. А вот защитить изображения от копирования невозможно - даже чайник может нажать клавишу PrtScr и получить скриншот, с которого вырезать эту картинку (правда, не все почему-то догадываются так сделать - но это временное помутнение мозгов - если очень нужно, то догадаются 100%). А есть специальные утилиты для облегчения копирования и плагины для браузеров, которые всю страницу даже с прокруткой скриншотят. |
Цитата:
|
Скриншот идентичен картинке до бита. Если сохранить его в PNG или BMP или TIFF. Анимация и прозрачность конечно не сохранятся, но можно вручную добавить прозрачность, а анимацию снять с помощью специальных грабберов, снимающих видео (делают много скриншотов подряд, и из них видео или набор файлов) - но это уже труднее и нужно знать инструменты.
Или еще проще - в некоторых браузерах (например FireFox) можно посмотреть информацию о странице - и там найти нужное изображение и сохранить на диск без каких-либо изменений или особых трудностей. |
Цитата:
Это крайний метод. Достать картинку, не прибегая к таким ухищрениям, вполне реально. |
Обсуждение бессмысленно. Скрыть урл нельзя! Это невозможно, эта идея бессмысленна. Если браузер может показать картинку, то он уже знает её урл. Спросить браузер про урл картинки секундное дело. И абсолютно неважно грузите вы картинку или её base64 эквивалент.
И не нужны тут извращения с грабберами скриншотов. Защитить от скачки невозможно давая скачивать, только паролем! |
Gozar
Как это нельзя - а временный динамический УРЛ? Серверу совсем не обязательно говорить в каком каталоге лежит картинка - он ее может отдавать и по ссылке типа http://domain.com/?86734921768 где число - временное. Про пароль тоже верно. Хорошая идея. Например, можно для каждой странички давать временный пароль, который будет применяться ко всему ее контенту скажем на 3 минуты. Ну что-то в этом роде... Да, и кстати - про base64 тоже интересно - ведь можно встраивать картинку в страницу. Можно прямо в html, а можно отдавать mhtml (где всё хранится в виде mime-аттачей). |
Почемучкин, и к чему эта тирада? Скачать-то её всё равно можно будет.
|
Цитата:
Цитата:
Цитата:
Цитата:
base64 программно декодируется с той же лёгкостью с какой и кодируется. |
Цитата:
Цитата:
|
Поставленная задача - спрятать адрес по которому лежит картинка, вернее урл. А про то как можно скопировать уже загруженную браузером картинку я и сам уже выше писал. Gozar, за чтение тредов тебе 2 балла.
trikadin: "ламер" - это воинствующий "вечный чайник". а тот кто на грабли наступает много раз - это другое... |
А тебе двойка за умение объясняться. Три страницы тема, а люди так и не поняли, что тебе нужно.
Цитата:
|
Цитата:
Пользователю, в зависимости от его прав показываются например такие картинки: http://site.ru/files/0001.jpg http://site.ru/files/0007.jpg Увидев URL, легко открыть картинку http://site.ru/files/0002.jpg напрямую, даже если нету прав на ее просмотр. Вот от этого ТС и хочет защитится |
Ну тогда хеши, случайные числа и т.д. Сервер сайд, короче)
Или отдавать base64. Тогда пользователь вообще ничего не узнает... |
trikadin
Цитата:
|
Цитата:
|
Цитата:
Ну правду говорят, будешь спорить с дурачком, он тебя опытом задавит. По определению задачи спрятать урл на стороне клиента так чтобы его нельзя было узнать нельзя! - читать как мантру, до осознания. или можешь читать расшифровку, тоже как мантру - Нельзя спрятать урл, потому что тогда браузер не загрузит картинку! |
Gozar,
Какая самокритика... ;) Цитирую автора треда: "задача в том что бы пользователь не смог узнать url изображения" Насчет "Нельзя спрятать урл, потому что тогда браузер не загрузит картинку!" - учи html. Можно встроить картинку в сам код страницы, и об этом уже несколько сообщений здесь было. |
Цитата:
|
Понафлудили... Отдача картинок не напрямую, а через серверный скрипт, с проверкой прав, если нужны красивые урлы -- mod_rewrite в помощь.
|
e1f,
Это ещё Gvozd предложил. Тут другое, человек рогами упирается про url на клиенте. |
Часовой пояс GMT +3, время: 05:44. |