ISAPI Rewrite实现iis防盗链

ISAPI Rewrite实现iis防盗链为了实现图片防盗链,根据网络上搜集的资料加上自己的实践,终于实现了iis下的图片防盗链功能。服务器系统windows2003server,参考资料来源:http://www.hua-lin.net/blog/isapi_rewrite-stop-leeching-39实施步骤:1.下载比较出名的www.helicontech.com提供的ISAPIRewrite软件的免费版本(免

大家好,又见面了,我是你们的朋友全栈君。

为了实现图片防盗链,根据网络上搜集的资料加上自己的实践,终于实现了iis下的图片防盗链功能。服务器系统windows 2003 server,参考资料来源:

http://www.hua-lin.net/blog/isapi_rewrite-stop-leeching-39

实施步骤:

1.下载比较出名的www.helicontech.com提供的ISAPI Rewrite软件的免费版本(免费版本虽然有一些功能上的限制,但是做防盗链足够了):
http://www.isapirewrite.com/download/isapi_rwl_x86_0072.msi

2.设置软件安装目录的IIS_WGP组的读写权限(重要,如果不设置安装完后你的网站就会直接Service Unavailable,无法访问)。
设置方法:
假如你的安装目录是D:/Program Files/Helicon/ISAPI_Rewrite(默认安装目录是/Program Files/Helicon/ISAPI_Rewrite,我们可以先建立),右击ISAPI_Rewrite,选择“属性”->“安全”->“添加”->“高级”->“立即查找”,会找到一项IIS_WGP,双击添加,确定即可。然后选中这个组,点击“完全控制”,使其拥有读写权限。

3.安装软件(安装过程中软件会重启iis),安装目录选择上一步设置好权限的目录,安装完毕后打开控制面板里的Internet 信息服务,打开网站的属性对话框里面有一项“isapi筛选器”,点击“添加”,“筛选器名称”自己随便填写一个好理解的名字就可以,“可执行文件”项点击“浏览”,选择刚才安装的ISAPI_Rewrite的安装目录中的ISAPI_Rewrite.dll,确定即可。重启iis。

4.修改安装目录中的httpd.ini文件(如果这个文件为“只读”属性,则去掉“只读”之后再修改)
添加:

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

 

来个小解:

第一行通过RewriteCond的HOST定义其下的规则所适用的请求主机范围。

 

第二行通过RewriteCond的Referer定义规则适用的请求来源地址,我们都知道任何通过互联网方式访问网站都会留下Referer的痕迹,就好像我们在IIS日志里看到的一样。这里的(?!http:///1.*).*意思就是判断所有通过http协义发来的请求,都要应用规则。

 

第三行通过正则表达式对第二行中的请求协义地址进行过滤,这里按上面的写法,过滤了所有流行的搜索引擎,当然也包括你自己的站,或是你同台服务器其它的站。每个不同的域名写法是/.baidu/.com,多个有|号相隔。如果是IP则这样写100/.100/.100/.100

 

第四行通过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表示重新从站点请求文件而不是从本地缓存读取文件,目的是防止当用户访问了盗你链的网站后,再回到你的网站也出现盗链提示。

 

. 表示匹配除换行符以外的任意字符

+ 表示前面的字符可以出现一到任意多次

* 表示前面的字符可以出现零到任意多次

() 表示一个表达组,可以拿它和加减乘除法一起理解

?! 表示断言这个符号后面的字符如果出现则不再进行接下去的匹配

/ 表示转义符号,比如网址中的.是规则内置的运算符号,要把它通过/转义成字符。

| 表示或者,用于连接多种可能

通过以上这“乱七八糟”的符号,竟然组成了如此强大的规则,感叹!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163471.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • J2ME开发步骤

    J2ME开发步骤1.安装JDK2.安装WTK2.5.23.安装MIDP4.Netbeans5.5.15.MobilePack5.5.1部署J2ME您可以从Sun下载一个仿真器,该仿真器允许您在台式机系统上测试J2ME应用程序。如果您宁愿避免所有的图形开销,则您也可以在命令行上部署J2ME。在仿真环境中进行部署在仿真环境中部署和运行J2ME应用程序,要涉及到仿真器的安装和配置。J2

    2022年7月11日
    28
  • 解决Win键不能用的问题[通俗易懂]

    解决Win键不能用的问题[通俗易懂]问题描述:突然有一次,乱按了一通键盘,突然win键就不能使用了;win键既可以启动开始界面,同时又是win自带的快捷键的关键按键,比较重要。解决方法:发现自己的问题就是:按fn+F12(他会带一个小锁的键)就是锁定Win键;我解决的办法就是:按fn+Prtsc(他会带一个小钥匙的键)这样就可以使用Win键了;可能是以为电脑而异吧,多试一下上面的按键…

    2022年6月3日
    36
  • 计算机专业的男生喜欢你,男生真心喜欢你的五个表现

    计算机专业的男生喜欢你,男生真心喜欢你的五个表现原标题:男生真心喜欢你的五个表现男生真心喜欢你的五个表现。不知从什么时候起,“爱”成了一个不太确切的词。像是,我们平时跟人业务联系,表达感谢都会直接说,“爱你哦”,情绪却未丝丝入扣地跟上。“爱”被滥用得廉价了,“喜欢”这个词才更小心翼翼了起来。而我也跟万千少女一样,饱受“他究竟喜欢我吗?”这一终极拷问的困扰。现代人的真心,被层层规则与圈套拢住,是要费点机灵脑筋,拨云才能见日的。每天翻新暧昧的说辞…

    2022年7月25日
    14
  • Java内存管理-JVM内存模型以及JDK7和JDK8内存模型对比总结(三)

    勿在流沙住高台,出来混迟早要还的。做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!上一篇分享了JVM及其启动流程,今天介绍一下JVM内部的一些区域,以及具体的区域在运行过程中会发生哪些异内存常! 其实也就对应了内存管理的第一篇中 JVM的第三个阶段,程序运行内存溢出。知识地图:一、概述Java的内存管理采用[自动内存管理]机制,因为这个自动管理机制,Ja…

    2022年2月28日
    37
  • 颜色代码对应表「建议收藏」

    颜色代码对应表「建议收藏」颜色代码表http://www.knowsky.com/tools/advancedColorPicker.swfwidth=900height=500先用鼠标左键在左边大的方框内移动获取颜色(黑色

    2022年8月1日
    4
  • Spring常用注解

    Spring常用注解

    2021年7月9日
    83

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号