Как предотвратить появление горячей ссылки с вашего сайта ASP.NET?
-
19-08-2019 - |
Вопрос
Каков наилучший / самый простой способ запретить пользователям хотлинкивать изображения с моего размещенного на сайте ASP.NET сайта? Мне не нужно предотвращать хотлинкинг всех изображений / ресурсов, я просто хочу запретить хотлинкинг на определенные изображения / ресурсы на сайте. FYI. Он размещен на GoDaddy.com, поэтому трюки с IIS, вероятно, не сработают.
Решение
Потоковая передача изображений через страницу ASPX является хорошим решением. Хотя Реферер может быть взломан. Р>
Что вы можете сделать, это использовать уникальную соль (ключевое слово) и генерировать ее по MD5 (SHA-1 или SHA-2), если вы действительно заинтересованы в безопасности. Запустите также текущее время эпохи, это также истекает для изображений. Сохраните этот & Quot; код ключа & Quot; в печенье. Всякий раз, когда изображения обслуживаются, вы в основном пропускаете это через строку запроса. Проверка происходит на ASPX на другом конце. Вы даже можете создать новый & Quot; keycode & Quot; между каждым запросом, используя HTTPRequestModule или страницу Global.asax. Р>
Будут накладные расходы, но они не позволят никому хотлинкингу. Р>
Другие советы
Самый простой способ сделать это с помощью 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>
Вы можете отклонить любые запросы изображений, которые не имеют вашего сайта, в поле заголовка реферера HTTP. Это теория. Чтобы контролировать запросы в вашем приложении, вам нужно будет передавать все изображения через ASP-страницу (вместо прямой ссылки на них).
Одна вещь, которую я видел, что я считаю умной, - это добавить дополнительную часть в нижнюю часть изображения, а затем использовать технику CSS-спрайтов, чтобы обрезать ее, когда она отображается на вашем сайте. Наивная горячая ссылка приведет к отображению вашей дополнительной части. Это будет означать, что изображение перекошено, поэтому оно не выглядит правильно на другом сайте, и вы можете использовать дополнительную часть, чтобы показать свой собственный URL или все, что вы хотите.