作者最近在维护coderbbb时,检查访问日志发现很多恶意采集器为了采集本站的博文,将自己的UserAgent设置成了百度搜索引擎的爬虫UserAgent,希望以此来避开本站的各种安全防御手段。下面是日志截图,可以看出有一个UserAgent看起来像百度蜘蛛的请求,它的IP一看就是错的,通过查询IP显示的是阿里云的服务器……百度蜘蛛怎么可能从阿里云服务器上出来……
相信很多站长、码农们都遇到类似的恶意行为,那么有什么办法识别并防御吗?
其实方法很简单,只要通过nslookup
反查IP即可鉴定IP是否是合法的搜索引擎蜘蛛,如果是伪造的蜘蛛,直接屏蔽即可。
在java中实现反查IP的教程我们之前写过,欢迎参考:java nslookup反查IP验证google、百度、bing蜘蛛爬虫IP真假。
用上面这次恶意查询举例,我们通过CMD命令行反查IP,结果如下图所示:
我们再挑一个合法的百度蜘蛛,用nslookup命令查询一下,结果如下:
可以看出,返回结果中输出了crawl.baidu.com
这个域名,证明该IP是百度的合法蜘蛛。其他常见的各种搜索引擎,比如:google、bing、神马、头条等等,均可以采用该方法验证。