zoukankan      html  css  js  c++  java
  • 利用isapi_rewrite防盗链

    利用isapi_rewrite可以实现类似于Apache的伪静态路径,利用其检查refer的功能我们还可以实现防盗链。该软件可以在 http://www.helicontech.com/download/下载,是一个共享软件,但是有一个LITE版本是免费的,基本上可以实现我们需要的功能。安装的步骤我就不详细说了,具体说说httpd.ini的设置。
    首先,必须要保证httpd.ini有可写权限,设置isapi_rewrite安装文件夹IIS_来宾,IIS_进程读写权限。
    httpd.ini默认设置如下:

    RewriteCond Host: (.+)
    RewriteCond Referer: (?!http://\1.*).*

    我们在它后面加上一句

    RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]

    即可实现gif/jpg/png/exe/rar/zip文件的防盗链,盗链页面显示的是/block.gif。block.gif是一个体积较少的图片文件,我们可以在上面打上自己网站的版权标志和防盗链声明。
    如果按照上面设置,则除本站以外的所有网站均不能使用这里的图片,如果要允许一些例外的网站比如google,baidu以及其它一些非营利性网站引用该怎么办呢?我们可以用如下正则表达式来实现

    RewriteCond Referer: (?!http://(?:www\.0e2\.net|www\.google\.com|www\.baidu\.com)).+


    如果想允许所有google子站和baidu子站形如images.baidu.com,images.google.com等站则做如下设置:

    RewriteCond Referer: (?!http://(?:*\.0e2\.net|*\.google\.com|*\.baidu\.com)).+


    至此,一个相当有效的防盗链系统已经出来了,但如上设置有一个问题,如果浏览者浏览了盗链页面后访问本站页面,则被盗链图片的缓存会影响图片的正常显示。把

    RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]

    改为

    RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O,N]

    方可。参数N的意思是重新从站点请求文件而不是从本地缓存读取。

  • 相关阅读:
    ThinkPHP 3.2.2 实现持久登录 ( 记住我 )
    Java实现 LeetCode 20 有效的括号
    Java实现 LeetCode 20 有效的括号
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 17 电话号码的字母组合
  • 原文地址:https://www.cnblogs.com/happyday56/p/946335.html
Copyright © 2011-2022 走看看