作为刚建站两个月时,我小心翼翼开放评论第二天就经历了所有WordPress用户共同的噩梦:违规垃圾评论。
在尝试了Akismet(对中文内容拦截效果很差)、全部人工审核(感觉让别人等着审核通过不太好。。。)。
终于发现了两个插件@obaby的baby-wp-comment-filter和@沈唁志的wp-baidu-textcensor。
但很快发现了新问题:
- 广告开始出现在用户名字段,成功绕过所有检查
- 复杂的纯中文的软文广告形态绕过黑名单匹配
- 手动维护黑名单的成本极高(试过导入一个很长很长的中文敏感词库导致页面崩溃)
- wp-baidu-textcensor对百度审核API的调用没有充分保护,只有频率限制。被有心人用个IP池什么的刷完了咋办。
技术选型:混合防御策略的诞生
经过两周的测试,我发现一个分层验证模型(以baby-wp-comment-filter为基础,后置百度文本内容审核)效果最佳。
通过拒绝通过拒绝安全可疑违规用户提交评论WAF人机验证与频率限制Baby WP基础检查即时拒绝百度AI内容审核自动发布人工审核自动拦截

实施方面我是没有那个能力去从零写,就只有东拼西凑了。
| 防御层 | 处理速度 | 识别能力 | 资源消耗 |
|---|---|---|---|
| 雷池 Bot防护 | 2s左右 | 人及防护,但出现了正常评论丢失的问题 | 大约1g内存 |
| Baby WP本地规则 | 毫秒级 | 英文/基础格式 | 可忽略 |
| 百度AI审核 | 毫秒级 | 中文语义/变体广告 | API配额 |
目前在Baby WP的框架下加入了论百度AI审核的能力,后台插件太多看着难受。我爱大而美\^o^/。
分支地址:https://github.com/PaddySun/baby-wp-comment-filter/tree/feat/baidu-textcensor
还在测试阶段,之后也会继续维护开发分支!(立flag
致谢与Roadmap
特别感谢原插件作者@obaby的基础框架,和@沈唁志的百度审核部分代码。我爱开源社区。
- 近期:完整测试后PR到baby-wp-comment-filter
- 中期:加入评论用户名长度限制自定义
- 长期:可能会研究下NLP和效率优化技术、垃圾评论特征分析等等
需要你的帮助
谢谢你看到这里,那我就在厚脸皮一下。
- 测试用例征集 如果你遇到过特殊形态的垃圾评论,欢迎在Issue提交样本,在本站留言会被拦截(希望如此
- 误报/漏报/反馈如果你在本站留言被错误拦截,我大概率能受到提醒与你的评论原文。但方便的话请留言邮件或任何方式通知我。
无论最终PR是否被@obaby通过,这个分支都会持续维护。折腾永不停止,与人斗其乐无穷。
obaby女神的作品确实好,你也很厉害,加油
最好不要及时拒绝,而是采用「WAF违规」及时拒绝(因为这是绝对要防御的)→「Baby WP本地规则违规」返回进入审核队列,但其实直接进垃圾箱→「百度审核违规」返回进入审核队列,但其实直接进垃圾箱;这样违规内容bot只会感觉你一切都需要审核而已,而不是他的内容有问题。
我理解了。谢谢大佬指点。有“刑不可知 则威不可测 使民不可辩 则畏上也”的智慧在了。是该这样的。
希望你能弄得功能更加强大~~
谢谢大大鼓励