Как предотвратить появление горячей ссылки с вашего сайта ASP.NET? - PullRequest
5 голосов
/ 16 марта 2009

Каков наилучший / самый простой способ запретить пользователям хотлинкивать изображения с моего веб-сайта ASP.NET? Мне не нужно предотвращать хотлинкинг всех изображений / ресурсов, я просто хочу запретить хотлинкинг на определенные изображения / ресурсы на сайте. FYI. Он размещен на GoDaddy.com, поэтому трюки IIS, вероятно, не сработают.

Ответы [ 4 ]

8 голосов
/ 08 августа 2011

Самый простой способ сделать это с помощью 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>
3 голосов
/ 16 марта 2009

Потоковое изображение через страницу ASPX является хорошим решением. Хотя Реферер может быть взломан.

Что вы можете сделать, это использовать уникальную соль (ключевое слово) и генерировать ее по MD5 (SHA-1 или SHA-2), если вы действительно заинтересованы в безопасности. Запустите также текущее время эпохи, это также истекает для изображений. Сохраните этот «ключевой код» в файлах cookie. Всякий раз, когда изображения обслуживаются, вы в основном пропускаете это через строку запроса. Проверка происходит на ASPX на другом конце. Вы можете даже создать новый «код ключа» между каждым запросом, используя HTTPRequestModule или страницу Global.asax.

Будут накладные расходы, но это предотвратит хотлинкинг.

3 голосов
/ 16 марта 2009

Вы можете отклонить любые запросы изображений, которые не имеют вашего сайта, в поле заголовка HTTP referer. Это теория. Чтобы управлять запросами в вашем приложении, вам нужно было бы передавать все изображения через страницу ASP (в отличие от прямой ссылки на них).

2 голосов
/ 16 марта 2009

Одна вещь, которую я видел, что я подумал, была умной, это добавить дополнительную часть внизу изображения, а затем использовать технику css sprite, чтобы обрезать ее, когда она отображается на вашем сайте. Наивная горячая ссылка приведет к отображению вашей дополнительной части. Это будет означать, что изображение перекошено, поэтому оно не выглядит правильно на другом сайте, и вы можете использовать дополнительную часть, чтобы показать свой собственный URL или все, что вы хотите.

...