也许大家再用wordpress的时候,分析网站日志文件发现,有很多莫名的ua每天疯狂的爬行你的网站,比如Mj12,semrushbot,DotBot等,之前看过一个案例:这个人呢将一个服务器迁移到了一个新的 VHost 上,这个 VHost 本来是用来提高性能的,但是升级之后,性能实际上变得更差了,查看系统负载,他发现平均负载约为3.5——只有2个内核可用,这相当于服务器负载几乎增加了2倍,原因就是这些小鬼在捣乱。那么这些小蜘蛛到底是何方神圣,为什么说它是神圣呢,因为这几个bot,都是外国鼎鼎有名的大企业,比如semrushbot是属于semrush公司的,DotBot是属于Moz企业的….
上面的机器人的主要作用就是为他们各自的搜索引擎优化分析公司采集,分析并出售这些信息。因为他们需要为它们的客户输出很多网站信息,所以必须去采集,就像百度云观测,它必须每天派大量的蜘蛛杂兵来到你的网站,这样它才能确定你的网站健康状况。也就是说,除非你已经是这些公司的客户,否则你完全可以从你的网站把这些爬虫阻断掉。
对于我个人而言,反正我是很讨厌这些恶意软件流量和采集信息的机器人。这是一个持久战啊,以各种可能的方式与他们作斗争。我在这里提到的是机器人,因为如果你被它们各种骚扰,各种数据采集,你的网站性能肯定是受影响的,当然了,这个影响是相对于中小型网站而言的,大网站其实网站安全方面是很坚固的,影响甚微。
你可以把机器人想象成一个在你的网站上执行自动化操作的浏览器,它可以为自己的索引收集数据,搜索漏洞,尝试提交表单等等。机器人的用户代理只是一段文本添加了它的开发者信息,像 Google 百度机器人这样正规的爬行bots一般都不会有问题,而其他机器人就有可能试图模仿 搜索引擎 机器人,甚至随机生成一个用户代理来搞事情了。
那么怎么去阻断这些bots?
一、设置Vary: User-Agent 头部信息
如果你遇到这样的机器人开始爬行你的站点的话,你倒是可以设置 Vary: User-Agent 头部信息,这样它向你站点发出的每个请求都将是动态的,然后再加载资源资源。另一方面,如果没有使用头部文件,则可以直接从 Dynamic 缓存向这些机器人提供缓存请求,当然这个办法只适用于不是自适应的网站,而且不一定百分百有效,你们可以试试…..
二、设置网站robots.txt协议阻断
就是去你的服务器logs文件,然后把ua信息统计出来,提出最新的bots ua信息,设置可以参考我自己写的,www.rrdaj.com/robots.txt:
不过我自己看了下,这些协议呢,它们官网是声明了,这些蜘蛛是不一定遵循的,我分析了下,确实是,只能阻断一部分。
三、设置自己的服务器
这个办法是目前可能效果会好点的,原理可以是多个,比如:由于bots不尊重 robots.txt,必须强制阻止它们,我们将给他们返回一个410/403状态码,而不是实际的网页,这样就可以防止他们接触任何PHP/MySQL 资源了。具体操作不同的主机是不同的,大家有兴趣可以去了解下。
至于Mj12,semrushbot,DotBot这些蜘蛛是好是坏的问题,没有一个定论,对于小网站,其实是不好的,但对于大网站是没有任何影响的,小打小闹而已…..
版权声明:
本网站的所有文字、图片资料,均由作者亲自整理创作,任何媒体、网站或个人未经本网协议授权不得复制、转载、转贴或以其他方式复制发布/发表,请尊重我的劳动成果,侵权必究,谢谢。