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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WLAN没有有效的IP配置如何一招解决

    WLAN没有有效的IP配置如何一招解决提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档WLAN没有有效的IP配置如何一招解决前言一、电脑连不上网?二、具体步骤1.命令提示符(管理员)输入netshwinsockreset2.重启电脑总结前言自己的笔记本原本好好的突然就连不上网了,该怎么办?别急,博主也遇到过这样的问题,并且找到一种方法,非常有用,认真看哦!一、电脑连不上网?电脑突然就连不上网,诊断以后出现这个你是否在网上看到这样的解决方案?还有这样的博主亲自尝试过,好多种方法都不管用,这里我介绍

    2022年7月11日
    22
  • vue学习笔记(一)

    vue学习笔记(一)一、初使用vue1.在head中引入vue.js文件<script src=”./js/vue.js”></script>2.编写vue实例例子先通过原生js获取div并改变内容,两秒后改变值<div id=”app”> <!– {{content}} –> …

    2022年6月13日
    26
  • ajax实例教程_creo实例教程

    ajax实例教程_creo实例教程一、什么是Ajax?Ajax=Javascript和xml。Ajax是一种创建快速动态网页的技术。通过在后台与服务器进行少量的数据交换,Ajax可以使网页进行异步刷新,这意味着可以在不加载整个页面的情况下局部更新网页的某个部分。这么好的友好后台交互方式使Ajax技术迅速的流行起来。传统的页面如果不使用Ajax需要重新加载整个页面来实现更新内容。二、Ajax的语法步骤。

    2022年8月16日
    7
  • wireshark抓包工具详细说明及操作使用_wireshark ping抓包

    wireshark抓包工具详细说明及操作使用_wireshark ping抓包wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的

    2022年9月7日
    3
  • mavlink协议原理_mavlink协议长度

    mavlink协议原理_mavlink协议长度参考https://cloud.tencent.com/developer/news/48344https://www.cnblogs.com/lovechen/p/5801679.htmlhtt

    2022年8月5日
    6
  • 二叉树的详解与实现「建议收藏」

    二叉树的详解与实现「建议收藏」简介二叉树的相关概念,如,树高度,节点层数,节点度数,路径,叶节点,分支节点,根节点,父节点,左节点,右节点,兄弟节点,祖先节点,子孙节点,左子树,右子树等基本概念,不再赘述。二叉树分类1、完全二叉树若设二叉树的高度为h,除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。一维数组可以作为完全二叉树…

    2022年5月31日
    35

发表回复

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

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