Каков наилучший/самый простой способ предотвратить обращение людей к изображениям с моего размещенного веб-сайта ASP.NET? Мне не нужно предотвращать хотлинкинг всех изображений/ресурсов, я просто хочу запретить Hotlinking на определенные изображения/ресурсы на сайте. FYI. Это Hostesd на GoDaddy.com, поэтому трюки IIS, вероятно, не сработают.Как предотвратить обратную ссылку на изображение с сайта ASP.NET?
ответ
Потоковое изображение через страницу ASPX является хорошим решением. Хотя Referrer можно взломать.
Что вы можете сделать, это использовать уникальную соль (ключевое слово) и генерировать против MD5 (SHA-1 или SHA-2), если вы действительно обеспокоены безопасностью. Также запустите текущую эпоху и против этого, это также истекает на изображениях. Сохраните этот «код ключа» в файлах cookie. Всякий раз, когда изображения обслуживаются, вы в основном передаете это через запрос. Проверка выполняется в ASPX на другом конце. Вы даже можете восстановить новый «код ключа» между каждым запросом, используя либо HTTPRequestModule, либо страницу Global.asax.
Будет накладные расходы, но это не позволит кому-либо из hotlinking.
+1 + Ответить. Там много. Я, вероятно, поеду за устаревшим хэшем и пользовательским обработчиком расширений (через механизм 404) –
Вы можете отказаться от любых запросов на изображения, которые не имеют вашего сайта, в поле заголовка HTTP-ссылки. Это теория. Чтобы управлять запросами в вашем приложении, вам нужно будет передавать все изображения через страницу ASP (в отличие от ссылки на них напрямую).
Одна вещь, которую я видел, была умной, заключается в том, чтобы добавить дополнительную часть к нижней части изображения, а затем использовать технику css sprite, чтобы отключить ее, когда она показана на вашем сайте. Наивная горячая ссылка приведет к отображению вашей дополнительной части. Это будет означать, что изображение искажено, поэтому на другом сайте оно выглядит не так, и вы можете использовать дополнительную порцию, чтобы показать свой собственный URL-адрес или что-то еще, что вы хотите.
Простейший способ сделать это с помощью UrlRewrite в IIS 7.0.
https://help.maximumasp.com/KB/a738/using-url-rewrite-to-prevent-image-hotlinking.aspx
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="PreventImageHotlinking" enabled="true" stopProcessing="true">
<match url=".*\.(gif|jpg|png)$" />
<conditions>
<add input="{HTTP_REFERER}" negate="true" pattern="^$" />
<add input="{HTTP_REFERER}" negate="true" pattern="http://www.YourDomain.com/.*" />
</conditions>
<action type="Rewrite" url="/images/hotlinking.jpg" />
</rule>
</rules>
</rewrite>
</system.webServer>
Люблю это! Я использую его для файлов images/js/css и всего остального, что я не хочу, чтобы другие были hotlink! – RoLYroLLs
Посмотрите здесь. http://mvolo.com/blogs/serverside/archive/2006/11/10/Stopping-hot_2D00_linking-with-IIS-and-ASP.NET.aspx –