我与垃圾评论

作为刚建站两个月时,我小心翼翼开放评论第二天就经历了所有WordPress用户共同的噩梦:违规垃圾评论。

在尝试了Akismet(对中文内容拦截效果很差)、全部人工审核(感觉让别人等着审核通过不太好。。。)。

终于发现了两个插件@obabybaby-wp-comment-filter@沈唁志wp-baidu-textcensor

但很快发现了新问题:

  1. 广告开始出现在用户名字段,成功绕过所有检查
  2. 复杂的纯中文的软文广告形态绕过黑名单匹配
  3. 手动维护黑名单的成本极高(试过导入一个很长很长的中文敏感词库导致页面崩溃)
  4. 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和效率优化技术、垃圾评论特征分析等等

需要你的帮助

谢谢你看到这里,那我就在厚脸皮一下。

  1. 测试用例征集 如果你遇到过特殊形态的垃圾评论,欢迎在Issue提交样本,在本站留言会被拦截(希望如此
  2. 误报/漏报/反馈如果你在本站留言被错误拦截,我大概率能受到提醒与你的评论原文。但方便的话请留言邮件或任何方式通知我。

无论最终PR是否被@obaby通过,这个分支都会持续维护。折腾永不停止,与人斗其乐无穷。

5 thoughts on “我与垃圾评论

  1. 最好不要及时拒绝,而是采用「WAF违规」及时拒绝(因为这是绝对要防御的)→「Baby WP本地规则违规」返回进入审核队列,但其实直接进垃圾箱→「百度审核违规」返回进入审核队列,但其实直接进垃圾箱;这样违规内容bot只会感觉你一切都需要审核而已,而不是他的内容有问题。

    1. 我理解了。谢谢大佬指点。有“刑不可知 则威不可测 使民不可辩 则畏上也”的智慧在了。是该这样的。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注