现在的位置: 首页 > IT运维 > 正文

IIS ISAPI_Rewrite防盗链

2010年04月21日 IT运维 ⁄ 共 949字 评论数 1 ⁄ 被围观 0+

前段时间因为各种音乐盒大量盗用公司网站的mp3资源,导致网络阻塞,相应服务器使用的是IIS,我在网上查找了很久终于选定ISAPI_Rewrite lite作为IIS防盗链扩展。

不过网络文章一大抄,差点败给这些抄手,具体的配置多存在些小差异,按照网上的配置做下来一直失败,所以又全面对比了下各家的配置,结合正则表达式的语法,修正配置后终于可以正常运转了:)

ISAPI_Rewrite官网http://www.helicontech.com/,分为完整版(需付费购买)和简化版(免费),我使用的是免费版。

ISAPI_Rewrite,其实就是在IIS下加入正则表达式的扩展,补充IIS在url rewrite规则方面的不足,设置也很简单。
ISAPI_Rewrite安装完成后,涉及到防盗链、Rewrite规则的只有两个文件:

  1. ISAPI_Rewrite.dll  (加载于欲防站点,需重启IIS)
  2. http.ini (存放在ISAPI_Rewrite.dll的同级目录,修改保存后实时生效)

我最终的防盗链配置如下(在http.ini中追加如下配置):

[ISAPI_Rewrite]
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
#设置允许发起请求的网站,以|分隔
RewriteCond Referer: (?!http://(?:.*\.mydomain\.net|.*\.herdomain\.com)).+
#设置哪些扩展名的文件需要防盗链,以|分隔,注意各种符号细节
RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip) /block.jpg [I,O,N]

补充说明:

1. 设置受限文件格式.[I,O,N] 后面的 N 用来防止防问了盗链者网站后将block.jpg 缓存下来,正常访问你的站点仍然使用缓存的block.jpg就不好了。
2. 因为是通过判断Referer来达到防盗链的目的,而流媒体是不Referer的,所以流媒体的防盗链不适用本解决方案。
3. 增加对user agent判断的正则表达式规则,通过对user agent等特征判断达到对没有Referer的盗链的阻断目的。

给我留言

您必须 [ 登录 ] 才能发表留言!

×
#