2009-03-15 14 views
5

Jaki jest najlepszy/najprostszy sposób, aby zapobiec linków do obrazów z mojej hostowanej witryny ASP.NET? Nie muszę blokować wszystkich obrazów/zasobów z hotlinkingu, chcę tylko zapobiec tworzeniu linków do konkretnych obrazów/zasobów w witrynie. FYI. Jest hostesd na GoDaddy.com, więc sztuczki IIS prawdopodobnie nie będą działać.Jak zapobiec wyświetlaniu linków graficznych ze strony ASP.NET?

+0

Zapraszamy do obejrzenia tutaj. http://mvolo.com/blogs/serverside/archive/2006/11/10/Stopping-hot_2D00_linking-with-IIS-and-ASP.NET.aspx –

Odpowiedz

3

Przesyłanie strumieniowe obrazów za pośrednictwem strony ASPX jest dobrym rozwiązaniem. Chociaż Referrer może zostać zhakowany.

Co możesz zrobić, to użyć unikalnej soli (słowa kluczowego) i wygenerować przeciwko MD5 (SHA-1 lub SHA-2), jeśli naprawdę interesujesz się bezpieczeństwem. Uruchom także bieżący okres epoki, również z tym związany, co powoduje również wygaśnięcie obrazów. Zapisz ten "kod dostępu" w ciasteczkach. Za każdym razem, gdy wyświetlane są obrazy, w zasadzie przekazujesz je za pośrednictwem zapytania. Sprawdzanie poprawności odbywa się na ASPX na drugim końcu. Można nawet zregenerować nowy "kod klucza" między każdym żądaniem za pomocą strony HTTPRequestModule lub Global.asax.

Będzie nad głową, ale nie pozwoli nikomu na hotlinkowanie.

+0

+1 + Odpowiedź. Tam jest dużo. Prawdopodobnie zajrzę do wygasającego skrótu i ​​niestandardowego rozszerzenia (poprzez mechanizm 404). –

3

Możesz odrzucić wszystkie żądania dotyczące obrazów, które nie mają Twojej witryny w polu nagłówka referer HTTP. Taka jest teoria. Aby kontrolować żądania w aplikacji, musisz przesyłać strumieniowo wszystkie obrazy za pośrednictwem strony ASP (w przeciwieństwie do bezpośrednich linków do nich).

2

Jedną rzeczą, którą zobaczyłem, że uważam za sprytny, jest dodanie dodatkowej części do dolnej części obrazu, a następnie użycie techniki sprite css, aby odciąć ją, gdy jest wyświetlana na stronie. Naiwny hotlink spowoduje wyświetlenie dodatkowej porcji. Oznacza to, że obraz jest przekrzywiony, więc nie wygląda dobrze na innej stronie i możesz użyć dodatkowej porcji do pokazania własnego adresu URL lub czegokolwiek innego.

8

Najprostszy sposób to zrobić z UrlRewrite w 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

Uwielbiam to! Używam go do plików images/js/css i czegokolwiek, czego nie chcę, żeby inni korzystali z hotlinków! – RoLYroLLs

Powiązane problemy