防止外链(防盗链)技术

今天看了知乎上一个关于如何查看知乎用户的头像大图?的问题,其中一个答案是同学写的,涉及到了外链的问题。

原来一般外链使用HTTP_REFERER来实现的,HTTP_REFERER是HTTP协议head的一部分,可以通过HTTP_REFERER来确定该链接是从哪里链接进来的。

以下为c#实现防盗链的代码

 

1 if (Request.ServerVariables["HTTP_REFERER"] == null || !Request.ServerVariables["HTTP_REFERER"].ToString().Contains(Request.ServerVariables["HTTP_HOST"].ToString()))
2 {
3 Server.Transfer("Error.aspx");
4 }

 

该回答还提到了火狐浏览器的一个插件RefControl ,可以通过这个插件伪造链接页地址

 

关于这个附加组件

您可以创建一个网站列表,以及对应的每个站点应该发送的引用页。您可以选择无条件地发送这些引用页或者只在有第三方请求时发送。另外,您可以为不在列表中的任何其他站点指定默认的发送行为。
 
参考:百科
posted @ 2015-09-15 14:15  欧小威  阅读(612)  评论(0)    收藏  举报