全局图片防盗链处理
概念:防盗链是指用户不经过我们的网站直接访问我们的图片 我们给他一个错误的图片处理
原理:获取当前与上一次请求的url 对其进行网站域名与端口号比较 如果相同则返回真实图片(如果从别的网站链接过来不可能返回true)否则返回错误图片
过程:
1、新建一个一般处理程序处理
2、在webconfiguration中添加httpHandlers节点信息
1 public void ProcessRequest(HttpContext context) 2 { 3 context.Response.ContentType="image/jpeg"; 4 //当前请求 5 Uri url = context.Request.Url; 6 //上一次请求 7 Uri referrer = context.Request.UrlReferrer; 8 if (CompareUrl(url,referrer)) 9 { 10 //合法 11 //string path = context.Request.MapPath(context.Request.RawUrl); 12 context.Response.WriteFile(url.AbsoluteUri); 13 } 14 else 15 { 16 string path = context.Request.MapPath("daolian.jpg"); 17 context.Response.WriteFile(path); 18 } 19 } 20 21 private bool CompareUrl(Uri u1, Uri u2) 22 { 23 return Uri.Compare(u1, u2, UriComponents.HostAndPort, UriFormat.SafeUnescaped, StringComparison.CurrentCultureIgnoreCase) == 0; 24 }
1 <system.web> 2 <httpHandlers> 3 //此处的type中全写 第一个参数是 命名空间+类 第二个参数是程序集名称 path为访问哪个文件夹中的文件 4 <add verb="*" type="FangDaoLian" path="images/*.jpg"/> 5 </httpHandlers> 6 </system.web>
浙公网安备 33010602011771号