изображение http, видимое изнутри страницы, но не прямой URL - PullRequest
1 голос
/ 17 июля 2009

Я не верю, что это возможно, но я думаю, что есть люди, которые намного умнее меня, так почему бы не проверить ..

Я хотел бы иметь изображение HTTP, которое является видимым со страницы при использовании с тегом img, но НЕ видимым, если ссылка img src вызывается напрямую. Имеет ли это смысл? Доступно для просмотра на странице, но не при непосредственном вызове.

Быстрое редактирование. Приемлемой альтернативой является вставка изображения на страницу таким образом, чтобы URL не читался человеком и не мог быть извлечен и введен в браузер.

Обновление 2 ... .NET IIS7 env.

Ответы [ 5 ]

1 голос
/ 17 июля 2009

Обратите внимание, что продукты "безопасности", такие как Norton Internet Security и Norton Personal Firewall, предотвращают отправку заголовка HTTP Referer: (ошибка правописания TBL, а не моего) по умолчанию. Поскольку эти продукты широко используются, блокировка реферера сломает вещи для очень многих людей.

FWIW, если бы я стремился получить ваше изображение кроме просмотра вашей страницы (хотя я не могу себе представить, почему я должен это делать), я бы просто взял биты, когда они просматривались по сети, когда я просматривал вашу страницу, используя что-то вроде Чарльза или Фиддлера. Совершенно невозможно сделать контент доступным через Интернет, но помешать людям делать копии.

0 голосов
/ 11 августа 2009

Честно говоря, я переделал свое решение, поэтому мне не пришлось беспокоиться о нем ... знаю, что это полицейский, поскольку он ДЕЙСТВИТЕЛЬНО не отвечает на вопрос, но это так. Я обеспокоен тем, что пользователи смогут обмануть «игру», которую я создавал, если они смогут выяснить последовательность, которая использовалась для именования изображений. Быстрое и грязное решение .... не делайте имена файлов изображений последовательными / предсказуемыми.

0 голосов
/ 17 июля 2009

Да, есть много статей о том, как настроить правила mod_rewrite в apache, чтобы попытаться предотвратить прямой доступ к файлам.

http://www.cyberciti.biz/faq/apache-mod_rewrite-hot-linking-images-leeching-howto/

0 голосов
/ 17 июля 2009

Зависит от того, как он построен. Вы всегда можете убедиться, что ваш реферер - это та страница, с которой вы ожидаете, что она будет размещена, и заблокировать там запросы.

Если у вас есть какое-то понятие аутентификации, вы можете закопать изображение под какой-либо скрипт php / ruby ​​или http-обработчик asp.net, который запрашивает изображение с сервера или базы данных (в месте, которое не доступно для просмотра, но достижимы вашим кодом на стороне сервера), и этот обработчик может проверить ваш статус аутентификации перед его возвратом.

0 голосов
/ 17 июля 2009

Я считаю, что вы можете достичь чего-то подобного, полагаясь на заголовок реферера, предоставленный браузером - когда реферер является веб-страницей на вашем собственном сайте, вы отображаете изображение, но не иначе.

Это не на 100% надежно (так как передача реферера не является обязательной в спецификации HTTP), но работает достаточно хорошо для некоторых сайтов.

Это достигается через настройку вашего веб-сервера; поэтому вам, возможно, повезет больше, если вы спросите об этом на ServerFault.

...