什么是阻止人们盗链从我的托管ASP.NET网站图片的最佳/最简单的方法是什么?我并不需要防止所有图片/资源被盗链,我只是想防止盗链到特定的图像/资源在网站上。仅供参考。它hostesd上GoDaddy.com所以IIS的技巧可能不会工作。

有帮助吗?

解决方案

通过ASPX页流的图像是一个很好的解决方案。虽然推荐人可以被黑客攻破。

你可以做的是使用一个独特的盐(关键字),并产生对MD5(SHA-1或SHA-2)如果你是真正关心的安全性。运行当前时代的时间以及针对这个问题,以及,这使到期的影像。存储在cookies,这些“键码”。每当图像担任你基本上通过查询字符串传递此。验证发生在ASPX的另一端。你甚至可以使用再生的两种或HTTPRequestModule在Global.asax页面的每个请求之间的一个新的“键码”。

有将开销,但它会防止任何人盗链。

其他提示

最简单的方式来做到这一点是与IIS 7.0中的一个UrlRewrite。

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>

您可以拒绝没有在HTTP引用头字段网站中的图像的任何请求。这是理论。为了控制您的应用程序的请求,你必须通过流ASP页面的所有图像(而不是直接链接到它们)。

有一件事情我已经看到了,我还以为很聪明是一个额外的部分添加到图像的底部,然后用CSS精灵技术,把它割下来在您的网站时显示。一个天真的热链将导致显示您的额外部分。这将意味着图像歪斜,所以它不看的权利在另一个网站上,你可以使用额外的部分,以显示自己的网址或其他任何你想要的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top