asp怎么实现图片防盗链原理

asp.net iis7.5下配置图片防盗链
&这个技巧适合于图片站。对于图片站来说,如果图片被大量盗链,那么即浪费服务器资源,又带不来什么流量。所以可以适当的采取防盗链。
这次维护的服务器是win2008,iis是7.5,我本以为为比较复杂,没想到很简单。大体记录一下。
由于我没办法再操作服务器了,所以只能在我的机器上测试,测试环境是win7+vs2010+iis7.5。代码和配置基本相同。
1.首先下载url rewrite插件,下载地址是:http://www.iis.net/downloads/microsoft/url-rewrite,下载对应的插件就可以了。下载完毕后安装。
2.vs2010打开网站,打开web.config文件,在configuration下,加入如下代码:
&system.webServer&
& &&&rewrite&
& & &&&rules&
& & & &&&rule&name=&Prevent Image Hotlinking&&
& & & & &&&match&url=&.*\.(gif|jpg|png)$&&/&
& & & & &&&conditions&
& & & & & &&&add&input=&{HTTP_REFERER}&&pattern=&^$&&negate=&true&&/&
& & & & & &&&add&input=&{HTTP_REFERER}&&pattern=&^http://(.*\.)?27.214.233.139/.*$&&negate=&true&&/&
& & & & &&&/conditions&
& & & & &&&action&type=&Rewrite&&url=&/images/3.jpg&&/&
& & & &&&/rule&
& & &&&/rules&
& &&&/rewrite&
&/system.webServer&
如果使用,将代码中的ip地址换为域名,正则的域名是 ^http://(.*\.)?1100w\.com/.*$。
如果是盗链的图片,将会显示3.jpg
3.发布网站,右键internet信息服务器-》添加网站-》输入网站名称,物理路径,ip地址(web.config中设置的地址27.214.233.139),主机名等信息,点击确定。
到这里就设置成功了。访问网站:如果匹配成功,则显示如下内容:
如果匹配失败,显示另一张图片
【声明】:黑吧安全网()登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱,我们会在最短的时间内进行处理。
上一篇:【】【】您现在的位置: &
asp.net HttpHandler实现图片防盗链
asp.net HttpHandler实现图片防盗链
Step.1:创建文件 CustomHandler.cs,代码如下:   复制代码 代码如下:  using S using System.W namespace CustomHandler{ public class JpgHandler : IHttpHandler{ public void ProcessRequest(HttpContext context){ // 获取文件服务器端物理路径 string FileName = context.Server.MapPath(context.Request.FilePath); // 如果UrlReferrer为空,则显示一张默认的禁止盗链的图片 if (context.Request.UrlReferrer.Host == null){ context.Response.ContentType = "image/JPEG"; context.Response.WriteFile("/error.jpg"); }else{ // 如果 UrlReferrer中不包含自己站点主机域名,则显示一张默认的禁止盗链的图片 if (context.Request.UrlReferrer.Host.IndexOf("") & 0){ context.Response.ContentType = "image/JPEG"; context.Response.WriteFile(FileName); }else{ context.Response.ContentType = "image/JPEG"; context.Response.WriteFile("/error.jpg"); } } } public bool IsReusable{ get{ } } } }
Step.2 编译这个文件   复制代码 代码如下:  csc /t:library /r:System.Web.dll CustomHandler.cs
Step.3 将编译好的 CustomHandler.dll 拷贝到站点的 Bin 目录下。 Step.4 在Web.Config 中注册这个Handler。   复制代码 代码如下:  &system.web& &httpHandlers& &add path="*.jpg" verb="*" type="CustomHandler.JpgHandler, CustomHandler" /& &/httpHandlers& &/system.web&
OK,诸位可以按步骤自行测试一下,这里就不赘述了。
&&&主编推荐
&&&热门试卷
&&&最新视频
&&&热门阅读
&&&最新问答
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-asp 用Asp隐藏文件路径实现防盗链 及视频在线播放 WEB(ASP,PHP,...) 182万源代码下载-
&文件名称: asp
& & & & &&]
&&所属分类:
&&开发工具: ASP
&&文件大小: 2 KB
&&上传时间:
&&下载次数: 8
&&提 供 者:
&详细说明:用Asp隐藏文件路径实现防盗链 及视频在线播放-Asp hidden files using the path to achieve anti-navigating to .cn. and video online play
文件列表(日期:~)(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&用Asp隐藏文件路径实现防盗链.txt&&网页制作之在线视频播放代码.txt
&[]:纯粹是垃圾
&相关搜索:
&输入关键字,在本站182万海量源码库中尽情搜索:
&[] - 一种前后向复扩散图像增强算法,用于图象处理
&[] - function to setup dialog background pic页面导航:
→ 正文内容 ASP.NET 图片防盗链
ASP.NET 图片防盗链的实现原理分析
防盗链的原理,从图片请求的URL地址上判断是否是我们自己网站上的域名,如果不是,恭喜,你的图片已经被盗链了!
那么我来介绍下图片放盗链的一个方法 首先,添加个httpHandlers请求,WEBCONFIG部分配置节如下: &httpHandlers& &add verb="*" path="*.jpg" type="myhandler,App_Code"/& &/httpHandlers& 注意:对应于system.web之下,别添错了哦! 然后添加个class,取名为myhandler继承于IHttpHandler class原型如下:
代码如下: using S using System.D using System.C using System.W using System.Web.S using System.Web.UI; using System.Web.UI.WebC using System.Web.UI.WebControls.WebP using System.Web.UI.HtmlC public class myhandler : IHttpHandler { public void ProcessRequest(HttpContext context) { string FileName = context.Server.MapPath(context.Request.FilePath); if (context.Request.UrlReferrer.Host == null) { context.Response.ContentType = "image/JPEG"; context.Response.WriteFile("~/images/no.png");//被替换图片 } else { if (context.Request.UrlReferrer.Host.IndexOf("localhost") & -1)//这里是你的域名 { context.Response.ContentType = "image/JPEG"; context.Response.WriteFile(FileName); } else { context.Response.ContentType = "image/JPEG"; context.Response.WriteFile("~/images/no.png"); } } } public bool IsReusable { get { } } public myhandler() { } }
myhandler继承自IHttpHandler实现了对url来源来判断jpg图片是否被盗链,本class中以localhost为例,修改localhost和images/no.png参数即可 次方法也可应用于URL伪静态。下一次聊下图片与ASP.NET程序的服务器分离,欢迎大家光临本站。下面是补充所谓URL静态化(声明下:这里说的是伪静态,真正网页静态化就不说了可以用最简单的请求返回response实现,但好像久而久之数据量会很庞大,所以就不说了)就是把动态的网页看起来像静态的一样。如:aspnet.aspx?id=5 静态化:aspnet-5.html或/aspnet/5 SEO(搜索引擎优化),更青睐于静态化的网页,所以网页静态化对于专业的SEOer来说还是必须掌握的,下面我告诉大家一个方法来实现在ASP.NET下面的网页静态化。 下面给一个DEMO,下载地址:这个DEMO实现了网页的URL的伪静态,其原理通过匹配url的正则,来进行网页重定向,这个DEMO里面有这么个config,&add virtualUrl="~/microsoft*.*" destinationUrl="~/default.aspx" /& 也就是说请求microsoft.html,microsoft.shtml,microsoft.do都会映射到default.aspx 这个正则把URL重定向一个页面,没有带参数,我先来介绍下带参数如何实现,下面我加了这个规则 &add virtualUrl="~/default-([0-9]*)" destinationUrl="~/default.aspx?id=$1" /& 这个正则匹配了,这样的URL(假设/是你的域名), /microsoft-123 映射到/default.aspx?id=123 那么就实现了参数的传递 多个参数的传递可以用如下正则实现,各位高手想用什么样的静态化规则就自己写正则怎么实现吧,下面我给出一种目录化的URL伪静态规则 &add virtualUrl="~/default/([a-zA-Z0-9]*)/([a-zA-Z0-9]*)" destinationUrl="~/default.aspx?par1=$1&par2=$2" /&这里要注意的就是&(&)
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910

我要回帖

更多关于 nginx防盗链 的文章

 

随机推荐