相信所有站长都很痛恨假蜘蛛,我们这里说的蜘蛛是指搜索引擎爬虫蜘蛛。在我们观察网站日志的时候我们会发现有一些蜘蛛很有迷惑性,跟真蜘蛛一模一样,根本无法直接通过肉眼区分出来。
鉴别真假蜘蛛的方法
想要准确无误的判定蜘蛛的真实性,那么只有一个途径就是放过蜘蛛的IP反查其解析的域名,具体的方法参照真假蜘蛛ip识别。简单的讲就是我们可以通过电脑的cmd等工具使用“nslookup + ip”,看返回的结果是不是对于搜索引擎的域名。
因为访问的user-agent是可以修改的,但是这个ip与域名之间的解析,要么是域名所有者或者是劫持域名解析。对于搜索引擎的来说,通过这个方式的可能性为零,所以我们判定蜘蛛的真实性,只能使用这个方法。
假蜘蛛的目的
那么这些假蜘蛛的目的是什么,大多数就是为了采集你网站的内容、或者是对于网站进行攻击分析,伪装成搜索引擎蜘蛛可以获取站点的信任,降低被发现的可能性。如果你经常观察网站日志是很好发现的,搜索搜索引擎不会去抓取内容资源之外的链接。同时搜索引擎不会集中时间段去大量抓取内容,也不会去有顺序的挨个去抓取页面内容。
虽然通过日志可以辨别出,但是我们不可能去时时刻刻监控网站日志;对于一些抓取内容的而已蜘蛛我们发现的时候,内容已经被爬了去了再去屏蔽意义也不是很大了,那么有什么办法自动化处理这些假蜘蛛呢?
代码自动化鉴别假蜘蛛
分享一个我觉得不错的方法,那就是在网站后端请求的时候对于访问客户端的身份做一个鉴别,对于存在问题的ip立刻进行一个屏蔽处理,就可以尽可能的保护我们的原创内容不被别人抄袭了去。
第一步就是鉴别,访问者的请求头也就是user-agent。如果请求头是蜘蛛名,那么我们就要判断其真实性,基本的原理就是反查ip。比如在php中我们无法使用nslookup命令去进行反查。但是我们可以使用gethostbyaddr()函数可以实现nslookup同样的功能。
第二步就是确认蜘蛛真实性,我们把gethostbyaddr()函数的返回值,去匹配下各个蜘蛛域名;就可以确认真的ip是不是真的搜索引擎爬虫。
第三步屏蔽处理与放通,对于存在问题的蜘蛛我们可以直接屏蔽当前IP访问网站的权限,同时你也可以直接返回一封警告信给它,估计会被你震惊到的。对于是真实蜘蛛的IP我们添加为白名单,下次直接放通不再做鉴别。