IIS防盗链 ISAPI Rewrite图片防盗链规则写法

admin3年前网站建设47

通过G.CN和B.CN搜索后得出了几种不同的方案,例如网站程序的URL伪装法、服务器端的收费插件法和ISAPI-REWRITE的规则过滤法等,考虑自身网站结构和钱包的困难问题,最终选择了后者,即现在流行用来做伪静态的ISAPI Rewrite书写规则来实现我的防盗链“梦想”。

为什么说是梦想呢?首先表示惋惜,懒人我搜来了一大票经过无数次转载而来的文章,把现呈的代码应用后发现要么根本不起作用,要么就是效果达不到我想要的,几经周折后终于把这原本认为可以轻易借鉴照搬的防盗链给完成了,恨那些只会转载和伪原创的站长们,自己也不试试就拿来填充,害了多少人浪费了大把的时间。

经过恶补正则表达式相关教程并对前辈们留下的规则进行修改后,以下ISAPI Rewrite已经在我的服务器上正常运作。

经测试四种情况正常,即站内链接正常,白名单里的链接正常,盗链者链接屏蔽,搜索引擎链接正常。
详细如下;
一、完全屏蔽所有盗链来源的写法(如已有其它规则,则置于已有规则的上面)
代码:

复制代码 代码如下:


RewriteCond Host: (.+)
RewriteCond Referer: (?!\1.*).*
RewriteRule .*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]



老板,来个小解:
第一行通过RewriteCond的HOST定义其下的规则所适用的请求主机范围。
第二行通过RewriteCond的Referer定义规则适用的请求来源地址,我们都知道任何通过互联网方式访问网站都会留下Referer的痕迹,就好像我们在IIS日志里看到的一样。这里的(?!\1.*).*意思就是判断所有通过http协义发来的请求,都要应用规则。
第三行通过RewriteRule定义防盗链文件的后缀,这里仅是图片后缀,需要的可以添加mp3,rar等其它所有后缀。后面的/block.gif表示如果遇上这些后缀的文件被盗链后的转向,这里转向/根目录的block.gif,可以是HTML等任何文件。如果只想某个文件夹下面的文件不被盗链,只需要加上路径就可以。例如不想images和pic目录下的文件被盗,但其它可以。就要改写成:
RewriteRule (/images/|/pic/).*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]
这种情况主要是有些站长在别人友情链接里的图片地址是在自己这的。
最后面的[I,O,N],I表示不区分大小写,O表示对URL进行标准化,可能是用来处理Unicode编码的地址(例如包含中文的URL)以及QueryString的内容,N表示重新从站点请求文件而不是从本地缓存读取文件,目的是防止当用户访问了盗你链的网站后,再回到你的网站也出现盗链提示。
提示,由于此规则是通过Referer来获取带有字样的地址进行过滤,因此它无法防范其它协议的盗链,比如迅雷下载。但通过任何浏览器直接访问,只要是HTTP协义的,通杀。
以上关于RewriteCond和RewriteRule的作用仅是本人的土法理解,欢迎在这方面有专业研究的朋友在评论中指正,以免误导,另外如果遇到isapi-rewrite版本问题,只要保证后面的正则式写法正确就行。
二、排除性防盗链写法
代码:

复制代码 代码如下:


RewriteCond Host: (.+)
RewriteCond Referer: (?!\1.*).*
RewriteCond Referer: (?!(.*)(\.baidu\|\.google\|\.google\|\.g\|\.gougou\|\.soso\|\.sogou\|\.youdao\|\.bing\|\.yahoo\|\.yahoo\|\.eojoo\)).*
RewriteRule .*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]


老板,来个小解:
第一行同上
第二行同上
第三行通过正则表达式对第二行中的请求协义地址进行过滤,这里按上面的写法,过滤了所有流行的搜索引擎,当然也包括你自己的站,或是你同台服务器其它的站。每个不同的域名写法是\.baidu\,多个有|号相隔。如果是IP则这样写100\.100\.100\.100
第四行同上
这样说明应该不难理解吧,直接拿去用,按着原有格式改。
规则中出现的正则表达式符号小解:
. 表示匹配除换行符以外的任意字符
+ 表示前面的字符可以出现一到任意多次
* 表示前面的字符可以出现零到任意多次
() 表示一个表达组,可以拿它和加减乘除法一起理解
?! 表示断言这个符号后面的字符如果出现则不再进行接下去的匹配
\ 表示转义符号,比如网址中的.是规则内置的运算符号,要把它通过\转义成字符。
| 表示或者,用于连接多种可能
通过以上这“乱七八糟”的符号,竟然组成了如此强大的规则,感叹!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

做网站不单调是设计框架这么简单需蕴含着企业文化没这么简单

10月3号客户电话咨询,由网络讲解,客户提到做网站不就是申请个域名,注册个空间,做几个图,多再写几行代码不就行了?网站建设,有几千元的,几百元的,几十元的广告比比皆是,很少有人能上升到网站建设还要与公...

网站制作布局的误区您一定得知道

网站策划如果策划得好的话是能够决定于平台建设成功与失败的最重要之一。随着互联网高速发展,网站的高竞争率使得网站策划的地位日益倍增。武汉网站制作在策划阶段要注意以下几个误区:一、有些网站喜欢以自己的喜好...

集团网站制作组织架构不可或缺一定要详细

现在企业想要发展就离不开网站建设,但是网站建设应该从哪些方面出发,很多人都说不出来,因为大多数人其实都不知道网站如何建设比较合理。其实集团网站建设并没有大家想象那么难,只要根据企业组织架构建设就可以。...

IIS6 ASP 页的执行造成响应缓冲区超过其配置限制的解决方法

Response 对象 错误 'ASP 0251 : 80004005'超过响应缓冲区限制此 ASP 页的执行造成响应缓冲区超过其配置限制。因为页面中数据较多,有上千条,导致出现&ld...

网站建设安全知识

在互联网飞速发展的今天,每个行业都在发生着变化。随着互联网的发展,网站建设或多或少存在安全隐患。下面是关于网站制作安全的知识。1.提高安全意识,提前做好防范大数据时代,我们每个人都非常注重隐私保护,但...

同盾反欺诈云防垃圾灌水帖体验分享

 年初将留言本改成了松松论坛,解决了留言本很多问题,也有了互动性,增强了粘性。不过随后遇到了很多问题,尤其是垃圾贴的问题困扰了我们很久,有一段时间有人用论坛群发器发布了很多垃圾贴,原本只有几千条的帖子...