6 Stimmen

Wie kann man Bild-Hotlinks von Ihrer ASP.NET-Website verhindern?

Was ist der beste/einfachste Weg, um zu verhindern, dass Leute Hotlinking zu Bildern von meiner gehosteten ASP.NET-Website betreiben? Ich muss nicht alle Bilder/Ressourcen am Hotlinking hindern, ich möchte nur Hotlinking zu bestimmten Bildern/Ressourcen auf einer Site verhindern. ZU IHRER INFORMATION. Die Website wird bei GoDaddy.com gehostet, also werden die IIS-Tricks wahrscheinlich nicht funktionieren.

0 Stimmen

11voto

Tommy W Punkte 629

Der einfachste Weg, dies zu tun, ist ein UrlRewrite in 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 Stimmen

Ich liebe es! Ich verwende es für Bilder/js/css-Dateien und alles andere, von dem ich nicht möchte, dass andere es verlinken!

0 Stimmen

Sie müssen zum Ausschluss auch Facebook für die Freigabe und Google für die Bildindizierung hinzufügen, wenn Sie wollen.

3voto

cdonner Punkte 35735

Sie könnten alle Anfragen nach Bildern ablehnen, bei denen Ihre Website nicht im HTTP-Referer-Header-Feld steht. Das ist die Theorie. Um die Anfragen in Ihrer Anwendung zu kontrollieren, müssten Sie alle Bilder über eine ASP-Seite streamen (im Gegensatz zu einer direkten Verknüpfung zu ihnen).

3voto

Danny G Punkte 3497

Das Streaming der Bilder über eine ASPX-Seite ist eine gute Lösung. Der Referrer könnte jedoch gehackt werden.

Sie könnten ein eindeutiges Salt (Schlüsselwort) verwenden und gegen MD5 (SHA-1 oder SHA-2) generieren, wenn Ihnen die Sicherheit wirklich am Herzen liegt. Überprüfen Sie auch die aktuelle Epochenzeit mit diesem Schlüssel, um die Bilder mit einem Ablaufdatum zu versehen. Speichern Sie diesen "Schlüsselcode" in den Cookies. Bei der Bereitstellung von Bildern wird dieser Code im Grunde über den Querystring übergeben. Die Validierung erfolgt in der ASPX-Datei auf der anderen Seite. Sie könnten sogar bei jeder Anfrage einen neuen "Keycode" generieren, indem Sie entweder ein HTTPRequestModule oder die Global.asax-Seite verwenden.

Es wird ein Overhead entstehen, aber er wird verhindern, dass jemand Hotlinking betreibt.

0 Stimmen

+1 +Antwort. Das ist eine ganze Menge. Ich werde wahrscheinlich für den ablaufenden Hash und benutzerdefinierte Erweiterung Handler (durch den 404-Mechanismus) gehen

1voto

Joel Coehoorn Punkte 377088

Eine Sache, die ich gesehen habe und die ich für clever halte, ist das Hinzufügen eines zusätzlichen Teils am unteren Rand des Bildes und die Verwendung einer CSS-Sprite-Technik, um ihn abzuschneiden, wenn er auf Ihrer Website angezeigt wird. Ein naiver Hotlink wird dazu führen, dass der zusätzliche Teil angezeigt wird. Das bedeutet, dass das Bild verzerrt ist, so dass es auf der anderen Seite nicht richtig aussieht, und Sie können den zusätzlichen Teil verwenden, um Ihre eigene URL oder was immer Sie wollen, anzuzeigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X