当前位置: > Linux服务器 > apache >

让Apache拒绝网络流氓蜘蛛

时间:2015-01-10 13:03来源:linux.it.net.cn 作者:IT

一旦网站对外开放,并登陆到搜索引擎中,网络蜘蛛会定期来光顾采集。  当一个网络蜘蛛(有的叫搜索机器人)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。

  目前看来,绝大多数的搜索引擎机器人都遵守robots.txt的规则。但这是只防君子不防小人,碰到网路坏爬虫就没辙了,有些搜寻引擎的 robot 根本不看网站的robots.txt,就一路抓下去,实在另人发指. 

 

目前的网络蜘蛛大致分为4种:
1 真名真姓,遵循robots.txt 协议。
2 真名真姓,不遵循robots.txt协议。
3 匿名,不遵循robots.txt协议。
4 伪装:不遵循robots.txt协议。

 

  网路坏爬虫就是这些不遵守游戏规则,到处乱抓别人网站的内容的坏蛋。这样会造成网站运行压力的增大和流量增加,也就是费用的增加,或是不想被公开的资料也被抓取了,侵犯网站的隐私. 

 

例如:

iaskspider 是"爱问"属於新浪网的 robot,完全不管 robots.txt

QihooBot,也是来自"奇虎网",浪费带宽

另有 larbin,iearthworm,yodaoice,lanshanbot,Outfoxbot 等等.


 碰到这种网路坏爬虫,只能想法阻挡它。Apache就可以挡住特定IP,但因為 robots大多有多个IP,过滤爬虫名字还是比较有效的,可以用BrowserMatchNoCase 来过滤.

 

用法像是:

<directory "/wwwroot">
Order allow,deny
Allow from all
BrowserMatchNoCase "iaskspider" badguy
BrowserMatchNoCase "QihooBot" badguy
BrowserMatchNoCase "larbin" badguy
BrowserMatchNoCase "iearthworm" badguy
BrowserMatchNoCase "Outfoxbot" badguy
BrowserMatchNoCase "lanshanbot" badguy
BrowserMatchNoCase "Arthur" badguy
BrowserMatchNoCase "InfoPath" badguy
BrowserMatchNoCase "DigExt" badguy
BrowserMatchNoCase "Embedded" badguy
BrowserMatchNoCase "EmbeddedWB" badguy
BrowserMatchNoCase "Wget" badguy
BrowserMatchNoCase "CNCDialer" badguy
BrowserMatchNoCase "LWP::Simple" badguy
BrowserMatchNoCase "WPS" badguy
deny from env=badguy
</directory>

如此,它们就会收到 Apache返回的错误码:  403 码:Forbidden

如果还不行就直接屏蔽IP地址段,增加

deny from 221.194.136.*

deny from 220.181.33.*

这两个IP段都是qihoo的

 
(责任编辑:IT)
------分隔线----------------------------