恶意蜘蛛PetalBot遭遇战:黑帽SEO搜索留痕

最近几个月,后台的实时流量日志突然多出一些奇怪的访问记录。好家伙,这是网站被黑帽SEO盯上了。令我惊讶的是,这些诡异的记录统统指向了同一个User-Agent:PetalBot,华为的花瓣搜索蜘蛛。

PetalBot的着陆页

不同于大多数蜘蛛乖乖地爬sitemap、读feed,PetalBot的着陆页是站内搜索,而关键词则是一些不可描述的黑灰产。当然,在站内搜索一番黑灰产关键词之后,PetalBot也会像个正常蜘蛛一样爬文章页,去petalsearch也能查到收录记录。但即便如此,每天数次的骚扰还是让我忍无可忍。我决定对它进行限制。

第一次:robots.txt

考虑到大部分搜索引擎的爬虫都会遵守网站根目录下的robots协议,于是我把

User-agent: PetalBot
Disallow: /

加入了robots.txt文件中。

但我忘记了,我的robots.txt里早已写入禁止爬取站内搜索结果的规则。PetalBot持续爬取站内搜索,不就说明它是只不遵守robots协议的蜘蛛吗?

用robots协议来限制它果然是没有用的,不过我在PetalBot的官网上看到这么一段话:

6. Why My Website Can Still Be Found in Petal When It Has Been Already Added to robots.txt

It takes time to update data in the search engine index database. Although PetalBot has stopped accessing the pages on your site, it may take several months to clear the page index information that has already been established in the Petal search engine database. Besides, please check if your robots configuration is correct.

If your rejection is very urgent, please make your request to petalbot@huawei.com.

“虽然我们遵守robots协议,但已经记录的索引还要过几个月才能清除”。我不想等了。

第二次:waf

因为网站是部署了waf的,所有流量都要经过防火墙过滤,于是我把PetalBot这个UA加入了拦截列表。这样一来,防火墙日志里全是PetalBot的503记录。

第三次:服务器拦截

最后,我把屏蔽规则写入Apache的配置文件:

# Block malicious spiders
RewriteCond %{HTTP_USER_AGENT} "PetalBot" [NC]
RewriteRule ^(.*)$ - [F,L]

彻底终结了这个烦人的小垃圾。用Curl试了一下,“HTTP/1.1 403 Forbidden”,舒服了。

那么到底发生了什么,为什么PetalBot会变成黑帽SEO的工具?

如果你拿一些黑产关键字到各大搜索引擎上搜索一通,会发现搜索结果中竟有大量高权重网站的站内搜索页面,连日本交易所、罗技商城、芒果TV都统统沦陷。不存在代码植入,无需搭建链接农场,只是简简单单地在各个网站的站内搜索页面上搜索关键词,这些关键词可能是平台名字,可能是修饰过的网址,也可能是某个群号。黑帽SEO人员为一些黑产做关键词排名时,利用已经被搜索引擎收录的网站的站内搜索功能(因为搜索链接格式相对固定,一般是”?s=”或”?keyword=”,方便批量构造),大量生产带有关键词的页面,并用“蜘蛛池”引导搜索引擎去收录这些站内搜索页面。

虽然不能怪PetalBot,但目前看来就算是GoogleBot都无法辨识是否为垃圾链接,我也不想隐藏站内搜索(隐藏也没用,可以快速构造,除非改变URL),那牺牲一个份额不大的花瓣搜索,也无所谓了。

发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注