与垃圾评论的苦斗

更新日期: 2017-01-11 阅读次数: 6995 分类: Nginx

早上扫了一眼博客,发现出现了大量的垃圾评论,本来想晚上再解决,但是这次频率太高了,几乎两分钟一条,实在是不能忍!

查看垃圾评论的来源 IP

Nginx 日志

grep 'POST /comments' access.log | awk '{print $1, $4}'

还好这波垃圾评论的 IP 有规律

188.143.232.27 [11/Jan/2017:10:27:25
188.143.232.27 [11/Jan/2017:10:28:27
188.143.232.27 [11/Jan/2017:10:28:57
188.143.232.32 [11/Jan/2017:10:32:20
188.143.232.27 [11/Jan/2017:10:34:41
188.143.232.32 [11/Jan/2017:10:35:57
188.143.232.32 [11/Jan/2017:10:39:15
188.143.232.32 [11/Jan/2017:10:43:00
188.143.232.27 [11/Jan/2017:10:47:42
188.143.232.32 [11/Jan/2017:10:51:51

IP 属于俄罗斯

在 Nginx 中 ban 掉来自俄罗斯的臭流氓

location / {
  deny    188.143.232.0/24;
}

查看效果

188.143.232.27 - - [11/Jan/2017:11:06:15 +0800] "POST /comments HTTP/1.1" 302 
188.143.232.32 - - [11/Jan/2017:11:07:08 +0800] "POST /comments HTTP/1.1" 403 

可以看到,新的垃圾评论已经被屏蔽,页面返回 403 错误。

世界清净了!

Ban IP 相对关键词过滤更加有效

俄罗斯的垃圾评论已经有成熟的产业链,都是自动化的工具。如果你用关键词过滤,实际上垃圾评论只是不显示而已,而对方的程序还是在不断地提交。

ban IP 之后,对方的工具会检测到 403 状态,自己会做 sleep 甚至放弃继续请求,可以有效降低我们服务器的负载。

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式