防盜鏈原理
一般不良網站爲了不增加成本的前提下擴充自己站點的內容,經常盜用其他網站的資源,
這種現象稱爲到了可以使用HttpHandler技術解決問題
網站盜鏈 一般引用資源在網上的絕對地址
查找絕對地址一般 右鍵點擊資源 彈出屬性窗口 即可查看絕對路徑 (url)
實例代碼
//被盜鏈圖片
<div>
<img src="11.jpg" />
</div>
<div>
<img src="http://localhost:2297/11.jpg" />
<img src="http://pic6.huitu.com/res/20130116/84481_20130116142820494200_1.jpg" />
</div>
//防盜鏈
namespace ch2
{
public class ImgFDL : IHttpHandler
{
public bool IsReusable
{
get
{
return false;
}
}
public void ProcessRequest(HttpContext context)
{
//當盜鏈判定依據:上次請求的主機和端口與本次請求的主機和端口是否一致,不一致則爲盜鏈
//上次請求的URl
Uri lastUrl = context.Request.UrlReferrer;
Uri nextUrl = context.Request.Url;
//判定 主機和 端口是否相同
if (lastUrl.Host!=nextUrl.Host||lastUrl.Port!=nextUrl.Port)
{
//獲取請勿盜鏈圖騙
string path = context.Request.PhysicalApplicationPath + "timg.jpg";
//發送至客戶端
context.Response.WriteFile(path);
}
else
{
context.Response.WriteFile(context.Request.PhysicalPath);
}
}
}
}
<system.webServer>
<handlers>
<add verb="*" name="ImgFDL" path="*.jpg" type="ch2.ImgFDL"/>
</handlers>
</system.webServer>