清静了

我们有个工作论坛,采用phpBB搭建,运行了多年,始终被一个问题困扰:应对各种垃圾帖。目前采用的方法是:

  • 注册时设置Q&A问题,阻止部分机器人注册论坛。
  • 新用户注册后,会发送邮件要求激活。这确保用户是使用有效电子邮件地址。
  • 新用户发的第一个贴必须由管理员审核通过,后续发帖则不用再审核。这确保用户是个有效的用户。

以上措施能保证论坛的基本质量。不过最近发现了另外一个问题:大量的垃圾用户注册成功后并没有发帖,而是在用户信息等处填写了大量的广告等垃圾信息。这类用户多数来自相同的邮件服务器地址,例如xxx@example.ru等,估计是破解了Q&A方式的注册方式,往往一天之内会注册几十甚至上百个用户。

我不是很理解这种行为。因为各搜索引擎其实是看不到用户的个人信息,在个人信息处填写垃圾信息并没有实际意义。这类账户如同牛皮藓般的存在,实在让人觉得心烦,于是开始手工删除它们。

开始时一个个地搜索,一个个地删除,效率很慢。一天删掉几百个账户后,感觉头晕眼花,实在是件单调乏味的工作。仔细检查了phpBB的ACP界面,发现其实是支持批量删除的,真是大快人心。具体操作方法如下:

在“USERS AND GROUPS”界面,点击“Prune users”,然后点击“ Find a member”。在对话框中,可以使用通配查询,例如设置“E-mail”为“*@example.ru”,将该邮件服务器地址的所有注册用户搜索出来,然后点击“Mark all”以及“select marked”。接着在原“Prune users”界面里,设置”Delete pruned user posts” 和”Deactivate or delete”,然后就可以删除掉所有已选择的用户。

删完这些账户后,为防止再次注册,可以强行屏蔽相应的邮件服务器地址,拒绝使用该邮件服务器地址的用户重新注册。在“USERS AND GROUPS”界面,点击“Ban e-mails”设置即可。同样,此处也支持通配符设置。

完成清理工作后(大约删除了一千多垃圾账户),对论坛本身是否有必要存在产生了一些怀疑。实际工作中,客户们往往还是采用邮件、IM以及在线联系等方式,只有少数用户愿意在论坛里公开讨论问题。后续我们再思考一下是否让论坛继续存在下去。