Discourse 默认带了好几层防护。新用户注册后会有一个信任等级系统,TL0 的用户发帖有各种限制,比如不能连续发太多帖、不能贴太多链接、图片也有数量上限。这套机制对那种批量注册然后狂发广告的低级机器人确实很有效,基本上注册进来也发不出什么东西就被卡住了。另外它内置了 Akismet 的集成,虽然需要单独配置 API key,但接上之后对英文垃圾内容的识别率还是相当不错的。
但问题来了。如果你运营的是中文社区,Akismet 对中文内容的识别能力就明显拉胯了。那些什么"加微信""代开发票""论文代写"之类的垃圾帖,Akismet 经常放行。我之前的论坛每天早上起来都要手动清理几条这种帖子,一度很头疼。后来我的做法是把新用户的第一篇帖子设成需要审核,再加上一些关键词过滤规则(Watched Words 功能),总算把漏网的控制在一个可接受的范围。