Was ist der beste/einfachste Weg, um zu verhindern, dass Personen auf Bilder von meiner gehosteten ASP.NET-Website verlinken? Ich muss nicht verhindern, dass alle Bilder/Ressourcen über eine Hotlink-Funktion verbunden sind. Ich möchte lediglich verhindern, dass bestimmte Bilder/Ressourcen auf einer Website verknüpft werden. FYI. Es ist Hostedd auf GoDaddy.com, so dass IIS-Tricks wahrscheinlich nicht funktionieren werden.Wie Verhindern Bild Hotlink von Ihrer ASP.NET-Site?
Antwort
Das Streaming der Bilder über eine ASPX-Seite ist eine gute Lösung. Obwohl Referrer gehackt werden könnte.
Was Sie tun könnten, ist eine einzigartige Salz (Stichwort) und generieren gegen MD5 (SHA-1 oder SHA-2), wenn Sie wirklich mit Sicherheit betroffen sind. Führen Sie auch die aktuelle Epochenzeit dagegen aus, dies setzt auch einen Ablauf auf Bildern. Speichern Sie diesen "Schlüsselcode" in den Cookies. Wann immer Bilder geliefert werden, gibt man das im Grunde über die Querystring weiter. Die Validierung findet auf dem ASPX am anderen Ende statt. Sie könnten sogar einen neuen "Schlüsselcode" zwischen jeder Anfrage entweder über eine HTTPRequestModule- oder die Global.asax-Seite generieren.
Es wird Overhead sein, aber es wird verhindert, dass jemand eine Verbindung herstellt.
+1 + Antwort. Da ist viel. Ich werde wahrscheinlich für die ablaufende Hash und benutzerdefinierte Erweiterung Handler gehen (durch die 404-Mechanismus) –
Sie können Anfragen für Bilder, die Ihre Site nicht enthalten, im HTTP-Referer-Header-Feld ablehnen. Das ist die Theorie. Um Anforderungen in Ihrer Anwendung zu steuern, müssen Sie alle Bilder über eine ASP-Seite streamen (anstatt direkt mit ihnen zu verlinken).
Eine Sache, die ich gesehen habe, war, dass es schlau ist, einen zusätzlichen Teil am unteren Rand des Bildes hinzuzufügen und dann eine css-Sprite-Technik zu verwenden, um es auf Ihrer Website zu entfernen. Ein naive Hotlink führt dazu, dass Sie Ihre Extraportion anzeigen. Dies 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 auch immer Sie wollen, anzuzeigen.
Der einfachste Weg, dies zu tun ist mit einem 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>
Liebe es! Ich benutze es für Bilder/Js/CSS-Dateien und alles andere, das ich nicht möchte, dass andere Hotlink! – RoLYroLLs
Haben Sie hier einen Blick. http://mvolo.com/blogs/serverside/archive/2006/11/10/Stopping-hot_2D00_linking-with-IIS-and-ASP.NET.aspx –