WEB站点攻防指南(一):wordpress应对基于404请求的CC攻击

最近几个月,网站访问量和爬虫索引量都有所增加,随之而来的服务器压力问题也与日剧增。经常出现,一大早收到阿里云停服通知的事。

目前本博客使用的是阿里云的虚拟空间(万网被阿里收购的那部分业务),虽说访问量有所增加,但也没达到一个月被停站4次的强度。

根据发生的时间点(凌晨1点到5点左右),初步推断是因为爬虫爬取频率太高。便更新了rebots.txt的规则:除了几个知名的爬虫(谷歌、百度等),其他全部禁止。——当然,如果遇到流氓爬虫,他们是根本不在乎rebots.txt规则的。

不过,网站还是时不时的被停服,安装并配置了“All In One WP Security”插件,随后通过这个插件发现网站有大量地账号注册行为,造成数据库暴增。幸好“All In One WP Security”有套比较完善的防机器注册的防护功能,这样,大量注册账号的攻击算是被拦截住了。同时,通过这个插件的防火墙和黑名单机制,设置了恶意IP访问地拦截功能,但收效甚微,每天都会有大量404的访问日志。——起初以为404只是消耗流量,并没有十分关注,只是定期地给黑名单里添加一些恶意IP。

好景不长,没几天,网站还是被攻停了。几次联系阿里云技术人员,排查了些恶意IP(当时发现了大量阿里云的IP,要么是安全检测的IP,要么是肉鸡),也没起到理想效果。在又一次停服后,我不得不降低了百度的抓取频次,起了几天左右,最后还是被停服了。——至此,阿里云一个月四次的启动机会被用完了。距离下个月还有十几天~😭

在这期间,我整理了一篇文章《网站杂病诊疗》。待下个月,网站恢复后,立马着手相关工作:

首先,除了主站域名,其他域名都接入七牛的CDN,CDN从七牛的对象存储里获取文件,而七牛的对象存储内容又是回源得主站内容。这样就相当于用七牛CDN做了静态化与大流量防控。

其次,安装“Redirection”插件。这个插件是专门用于处理wordpress的404攻击。正是通过这个插件,使我意识到wordpress在404访问处理时的严重漏洞:wordpress请求一个没有被缓存的地址时,会进行数据库查询,当有大量404请求时,会造成大量地数据查询,迅速消耗服务器资源。而七牛CDN和对象存储好像是不对404请求建立缓存的,最终404的压力会传递到主站。

而且,还发现,有几个国外的小爬虫和用无界面浏览器做的假爬虫有大量404访问。新的对策也就出来了:

第一、通过“Redirection”插件配置404路径的301重定向,定向到一个404.html的静态文件上。并把生成的规则,配置到.htaccess文件里,直接阻断对wordpress的压力。

第二、配置主站域名的智能解析,通过dnspod的智能解析,把国外DNS解析到七牛的CDN上,避免国外小爬虫和假爬虫的爬取主站,造成服务器压力。

欲知后事如何,请听下回分解!

© 2019, 李德涛博客. 版权所有.

发表评论

电子邮件地址不会被公开。

5 × 4 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据