Typecho博客被刷垃圾评论
事情的起由,源自于上周想到看看博客的情况。结果打开aliyun就发现博客最近几天的流量异常多;而打开Cloudflare的监控发现,有2个国家的IP访问数非常多;一打开博客,居然被刷了几千条垃圾评论。
1. 监控显示异常
可以看到,由于访问量较少,所以一般情况下,每天流量只用到几M,而从20日开始,居然每天都刷了几百M甚至1G的流量,到我发现的25日,其实已经被垃圾评论刷了5天,将近3000条垃圾评论。
而从Cloudflare的统计则显示,来自法国、美国的访问量很异常,甚至比中国的还多;啥时候我的博客有这么多法国🇫🇷读者了?
2. 解决垃圾评论
发现这些垃圾评论的第一瞬间,我就明白博客被攻击了/被刷垃圾评论了,攻击者的目的可能是刷爆你的数据库容量/主机流量||(后来有看到别的博客提到莆田的IP狂发垃圾广告评论等)||。于是第一时间当然是防止垃圾评论,禁止IP访问。
2.1 删除评论,修改Typecho设置
打开aliyun后台,打开数据库的管理工具DMS,打开表typecho_comments
,查找垃圾评论的coid范围,然后打开SQL窗口,输入语句
DELETE FROM `typecho_comments` WHERE `coid` BETWEEN 3180 AND 3185 # 3180到3185是垃圾评论的coid范围
打开Typecho后台->设置->评论,勾选“所有评论必须经过审核”或“评论者之前须有评论通过了审核”,由于脚本是会更改IP来刷评论,因此勾选这2项,可以先禁止文章中继续产生垃圾评论。而“允许使用的HTML标签和属性”一栏中,也应该清空,防止垃圾评论里的网页链接。
2.2 安装Typecho 插件或修改PHP文件
- 小墙AntiSpam
- SmartSpam by YoviSun
- comment.php修改为只允许中文环境评论
- CC 5秒盾
推荐使用SmartSpam,因为该插件可以屏蔽IP、选择评论的处理方式(标记为待审核/标记为垃圾/评论失败)、禁止关键字/词汇等。也支持只允许中文评论。
而小墙AntiSpam确实能挡住垃圾评论,但是我看了源码,源码只有90行左右,且容易误判。所以还是不推荐。
而CC五秒盾,更多的是防止CC攻击或者频率很高的脚本。如果不清楚作用的,建议不要使用。
2.3 主机平台屏蔽或Cloudflare防御
如果你的主机平台有屏蔽IP的措施,那么你也可以增加规则;而我则使用Cloudflare来防御。首先可以打开Cloudflare的“Overview”下的“Under Attack Mode”,会产生如CC五秒盾一样的效果,每个访问会先等待5秒再进入;而“Firewall”下的“Firewall Rules”也可以增加屏蔽特定国家/IP的访问。
2.4 安装评论提醒插件
这次被攻击了5天才知道,就是由于没有安装评论提醒插件,所以吸取教训,也为了改善评论访客的体验,所以安装这2款插件;Mailer是VOID主题作者配套的邮件提醒插件,果然刚设置好,立刻收到好几封垃圾评论邮件,也算间接测试了;而CommentToWechat则借用了Server酱发送微信提醒,更加能随时随地收到评论提醒。
3. 从垃圾评论说开来
有了以上的这些手段,一般的攻击应该是可以防御了。其实从将博客迁移回Typecho前,我就有这方面的担心,因为很久以前使用Wordpress搭建博客时,也遇到过攻击;那时大部分博客工具如Wordpress、Emlog等都是php语言写的,而很多这方面的攻击工具就针对php的站点,如扫描你数据库的端口等各种攻击。
其实,躲在网络另一边的攻击者,一般技术没有多厉害,不然的话,我的博客早就被打瘫了。而这种人只是找到了这些工具,然后就迫不及待地去找别人的站点来尝试,如果尝试成功了,就感觉得到莫名的成就感/虚荣感。
很神奇的是,并不止博客类站点有这种情况,其实网络上就是充斥了很多这种损人不利己的行为,如我之前听到GGtalk里的《游戏加速纵横谈》这期,就提到曾经有段时间,加速器服务厂商们经常受到DDOS攻击,其实大家都能猜到大概是哪些人做的。对付无聊的人,最好的方法就是不理他们。
截止到目前,攻击还在继续,而它们再也不能威胁到我的博客。
背景图:Photo by Franck V. on Unsplash