2009-03-15 3 views
5

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

+0

Посмотрите здесь. http://mvolo.com/blogs/serverside/archive/2006/11/10/Stopping-hot_2D00_linking-with-IIS-and-ASP.NET.aspx –

ответ

3

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

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

Будет накладные расходы, но это не позволит кому-либо из hotlinking.

+0

+1 + Ответить. Там много. Я, вероятно, поеду за устаревшим хэшем и пользовательским обработчиком расширений (через механизм 404) –

3

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

2

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

8

Простейший способ сделать это с помощью 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> 
+0

Люблю это! Я использую его для файлов images/js/css и всего остального, что я не хочу, чтобы другие были hotlink! – RoLYroLLs

 Смежные вопросы

  • Нет связанных вопросов^_^