记一次个人博客被刷恶意评论的分析与解决

前言

近期我的halo博客https://yingserver.cn出现了恶意刷评论的情况,打开halo后台,最过分的时候刷了近两百页的评论,连带着每一个评论发送的一千多封邮件…
在这里插入图片描述
几页评论还好,几百页要删评论还是很痛苦的…所以只能进数据库删除了
首先暂时关闭了评论接口,但是总不能一直关闭评论啊,更不能让恶意评论那么猖狂时不时给我来一下,而且还得去数据库删,太费劲了,那就想想办法

分析

数据库的评论表记录了评论人的相关信息,比如名字,邮箱地址,网址, ip等信息,但是并没有什么用,像名字,邮箱地址,网址,既然是刷恶意评论,那么肯定填的是垃圾信息,邮箱给我填了halo官方邮箱,评论内容全都填写了halo再github上的某issues(和halo有多大仇啊这…),然后看看ip吧,数据库group by看看,嗯果然没啥用,全都是代理ip,并看不出攻击者的任何信息,其他字段就更别说了,没用
下面是数据库查到的恶意评论ip,记录下

77.247.181.162
23.129.64.211
31.220.0.202
185.121.69.16
51.83.129.84
31.220.40.239
176.10.99.200
31.220.40.237
51.178.48.248
51.38.64.136
107.189.10.119
185.170.114.25
199.249.230.147
130.225.244.90
94.230.208.147
85.248.227.163
212.83.166.62
145.239.82.147
92.222.221.49
104.244.76.13
23.129.64.191
199.195.250.77
178.20.55.16
51.210.243.173
51.210.242.130
54.39.16.73
89.234.157.254
198.251.89.99
31.220.2.107
5.199.130.188
81.17.16.146
185.220.103.5
109.70.100.34
109.70.100.32
185.100.86.154
178.17.171.115
185.121.69.42
92.246.84.133
185.220.101.130
185.220.101.134
195.154.179.3
109.70.100.40
185.220.101.136
54.36.108.162
109.70.100.43
199.249.230.177
104.244.73.43
185.100.87.243
109.70.100.42
145.239.95.15
31.7.61.188
145.239.92.26
18.27.197.252
185.220.101.140
185.220.101.143
91.192.103.25
185.220.101.20
185.220.101.21
199.249.230.184
109.70.100.52
209.141.53.10
51.15.1.221
51.210.242.160
185.220.102.8
51.15.59.15
185.220.102.7
104.244.74.28
178.17.171.135
95.211.230.211
31.220.2.132
51.178.50.24
45.154.255.66
192.42.116.16
192.42.116.17
91.203.145.116
89.31.57.5
192.42.116.19
31.220.1.170
198.98.50.112
185.12.45.116
212.40.95.232
46.19.141.86
185.100.86.182
204.85.191.8
185.107.47.215
51.77.58.144
51.210.242.176
45.154.255.73
94.102.51.78
192.42.116.20
89.144.12.17
192.42.116.28
46.165.245.154
171.25.193.25
146.59.158.228
213.61.215.54
185.220.100.240
185.220.100.241
54.38.81.231
185.220.102.241
185.220.100.245
185.220.101.4
185.220.101.5
185.220.101.204
185.220.101.7
185.220.102.248
185.220.102.247
185.220.101.202
185.220.101.8
185.220.101.205
185.220.102.250
185.220.100.252
185.220.102.251
185.220.100.255
185.220.102.254
185.220.102.253
162.247.74.200
217.182.192.217
185.220.101.216
179.43.160.236
185.220.101.218

后来发现了一个比较特别的字段,user agent,一般是浏览器请求的时候带过来的,但是攻击者的UA很奇怪
在这里插入图片描述
嗯?bilibili security browser???什么鬼???b站啥时候有浏览器了?百度下,只是查到的是bilibili安全挑战赛的内容=。=
一般正常的UA都是Mozilla开头的UA,比如Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
虽然不清楚攻击者为啥要填这个,但起码也是区分攻击者的一个方式,暂且这么干吧

尝试解决

method1

既然能够通过UA区分攻击者身份,那么我就可以根据UA判断攻击者并拒绝访问就可以了,因为我用了Nginx,那么是不是可以在nginx中进行判断呢?
查了下,找到一篇文章,依样画葫芦,在server层加上
在这里插入图片描述
匹配UA为bilibili security browser的用户,直接给他403拒绝掉
暂且这么办,毕竟硬编码不太好,万一攻击者发现了改了UA就不行了,后面再看看有没用更好方式

method2

同时,在CDN中我也加入了访问评论接口访问频率的限制,超过一定阈值,也就是一个时间段内评论次数过多也直接拒绝访问,双管齐下
在这里插入图片描述

method3

halo允许后台设置评论经过审核后才能够显示,那么就开启评论审核,起码不至于恶意评论直接就刷到了前台,影响正常用户的观感

后记

维护自己的小站时不时还是会遭到各种奇奇怪怪的攻击,对于网络安全还是得多加学习才行,这次的恶意刷评论的情况,我也不清楚是否有效,得尝试一段时间看看,时不时来这么一下还是挺影响心情的,最后也希望各位大佬们对小站高抬贵手哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值