Как предотвратить появление горячей ссылки с вашего сайта ASP.NET?

StackOverflow https://stackoverflow.com/questions/648592

  •  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 или все, что вы хотите.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top