欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

IIS防盗链,防迅雷的唯一方案(safe3if)

程序员文章站 2022-08-07 19:54:28
最近一周多公司的网站反应速度特别慢,ping一下速度都超过1000ms,会员也开始抱怨。向机房反映以后,机房说瓶颈在我们的防火墙设备那里,不在他们机房的线路。连到设备上一看...

最近一周多公司的网站反应速度特别慢,ping一下速度都超过1000ms,会员也开始抱怨。向机房反映以后,机房说瓶颈在我们的防火墙设备那里,不在他们机房的线路。连到设备上一看,带宽占用稳定超过25m,这台设备的最大带宽也就是25m,看来的确是达到它的瓶颈了。

本来考虑换个更大的防火墙,但是后来想一想,以目前网站的pv和内容来看,也没有理由占用这么大带宽啊。

于是想办法分析日志,下载了几个比较大的日志文件,怎么分析呢?最后找到nihuo web log analyzer 3这个东西,虽然是试用,但是并没有功能限制(有时间限制),分析完之后清楚的列出访问量比较大的url(可惜只能按点击数列出来,不能按文件实际占用的流量,当然啦,这是日志文件本身的限制)。排在前两位的都是压缩文件,下面还有很多wmv的视频文件。而且2000多个ip发起了20几万次访问,而且,这些访问都不在google的访问记录里。很明显,这些都是多线程下载导致的。在文章页里想找到文件的下载地址需要登录,那几乎可以肯定,是迅雷的自动镜像功能了。

接下来就是想办法限制用户的下载,不让下载是不可能,于是搜索下载限速和限制每用户的线程的东西,找到了几个组件,包括2003server_chajianforiis,emiislimitts还有另外两个相似的东西,都是isapi的工作模式,但是都有一个共同的问题,就是狂占cpu,基本不会有空闲。而且也没有明显降低网站的流量。

直到今天下午再次研究这个问题,终于在一篇文章里看到一条线索,找到了safe3if,关键是,它没有限速功能,但是可以完全屏蔽迅雷。还有些其它的功能,比如防数据库注入之类的。作为isapi装上以后,网站的响应速度立马变快了,而且cpu使用率几乎没有变化。虽然可能会导致用户无法下载大文件,但是,作为目前最佳的也是唯一的解决方案,总算是解了燃眉之急。

下面附软件的下载地址:

下面是官方的介绍,经过测试确实不错

你的网站是否经常遭到非法攻击?是否因盗链或p2p多线程下载而耗尽带宽资源?是否没钱购买网上的此类软件?那么请使用safe3 iis firewall吧!safe3 iis firewall是一款完全免费的iis防护软件,内置如下功能,主要防止黑客攻击和多线程下载占用带宽。

safe3 iis firewall的功能:

防止sql注入式攻击;
防止溢出代码攻击;
防止特殊字符构成的url利用;
防止xss跨站提交;
防止构造危险的cookie;
防止迅雷等p2p多线程下载(限制只能用ie下载)

安装:

IIS防盗链,防迅雷的唯一方案(safe3if)

1 新建c:\windows\safe3和c:\windows\safe3\log\目录,将safe3if.dll, safe3if.ini复制到c:\windows\safe3(你也可以复制到其它适当的文件夹下面,注意若不能加载通常是权限问题,给这两个文件everyone完全控制权限就可以了)。
2 打开iis管理器,选择“默认网站”,右击“属性”,选择“isapi筛选器”,点击“添加”,输入筛选器名称:safe3if,可执行文件选择上面复制到c:\windows\safe3下面的safe3if.dll文件,点“确定”。
3重启iisadmin service服务。(在计算机管理—-windows服务里面,或使用命令net stop w3svc ,net start w3svc)
4 完成。

日志:

safe3 iis firewall能够将ini配置文件加载,黑客攻击记录都会保存到指定的日志文件里。因为它具有很大的性能开销,因此建议将它日志的记录等级设为0,只有需要查看攻击的时候,可以设置为110。
#非法日志记录位置
safe3log c:\windows\safe3\log\safe3 (会生成 例如:safe3.1078.log,注意不能生成日志是对该目录没有写权限,日志不要和safe3if.dll放于同目录)
#日志的记录等级
safe3loglevel 110
改为其它值则不记录日志


防迅雷下载:

safe3allowmultidown 0
设为0则阻止,1则放过
阻止所有多线程下载软件,如果文件被下载,你可以看下详细下载地址,这是迅雷从其它地方下载的。(对人解释真麻烦!还是简单说下吧!)

文件防盗链:(考虑效率问题,耗资源,而且网上也有免费的,所以去掉了)

可实现gif/jpg/png等图片或文件的防盗链,盗链页面显示的是/blocked.png。blocked.png放到网站根目录,我们可以在上面打上自己网站的版权标志和防盗链声明。
具体可查看safe3if.ini文件
#防盗链规则(允许自己的网站和搜索引擎)
#下面第一条规则改为自己的网站,去掉前面的#号就可以防盗链了
#rewritecond %{http_referer} ^(?!https?://(?:www\.)safe3\.cn/) [i]
rewritecond %{http_referer} ^(?!https?://(?:www\.)google\.com/) [i]
rewritecond %{http_referer} ^(?!https?://(?:www\.)baidu\.com/) [i]
rewriterule \.(?:gif|jpg|jpeg|png|bmp)$ /blocked.png [i,l]
要允许一些例外的网站比如google,baidu以及其它一些友情链接的网站引用。本方法基于http_referer判断,但对盗链已经足够了。

反黑客:

safe3urllenth 128
请求的url长度,超过此长度则阻止

内置如下功能
防止sql注入式攻击;
防止溢出代码攻击;
防止特殊字符构成的url利用;
防止xss跨站提交;
防止构造危险的cookie;

具体部分攻击记录就放在日志里,很强大,不多言了,自己测试去。

url重写:(考虑效率问题,耗资源,而且网上也有免费的,所以去掉了)

我也不在详细介绍。具体有关正则的说明大家可以用google搜索,主要有利于搜索优化。

格式:
rewriterule []
url-pattern:匹配的正则表达式(必需)
replacement-string:要替换的字符串(必需)
modifiers:有关对rewriterule的操作标记。可选选项。