如何防止图片盗链从你的ASP.NET网站?
-
19-08-2019 - |
题
什么是阻止人们盗链从我的托管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精灵技术,把它割下来在您的网站时显示。一个天真的热链将导致显示您的额外部分。这将意味着图像歪斜,所以它不看的权利在另一个网站上,你可以使用额外的部分,以显示自己的网址或其他任何你想要的。
不隶属于 StackOverflow