前段时间我们的论坛由于同样的 Spam 原因,关闭了注册。
当时的解决方案是:更新了 CNode 的源码,使得新用户只能通过 GitHub 注册。让 GitHub 来对付这些 Spammer。
今天,该 Spammer 注册了好几个 GitHub 账号,于是用发帖机开始轰炸本论坛。
从成本上来说,该用户注册 GitHub 账号的成本与我们屏蔽他的成本相比是相当高的。
如果他有那份心去大量注册 GitHub 来攻击我们 CNode 的话,那他同时其实也就具备了 Spam GitHub 的能力,但 GitHub 其实也并没有像很多网友所说的那样添加验证码什么的。
既然 GitHub 和 CNode 都是使用了同一套注册系统的话,那么我们在注册这一环节的强度已经是在同一等级了。
我们之所以会被 Spam 而 GitHub 没被 Spam 的原因就在于 GitHub 有专职的运营人员可以与这些人员战斗。屏蔽他们的成本真的很低,但难在我们 CNode 的管理员无法及时去发现他们,我们都有各自的工作而没法时时守着论坛。我们只能通过自己登陆论坛或者朋友提醒的方式来发现 Spammer 从而屏蔽他们。
所以,近期内,为了各位的方便,CNode 应该还是不会增加验证码相关的各个功能的。
而一旦出现新的 Spam 轰炸时,也希望大家能够及时提醒各个管理员,我们手动屏蔽一下 Spammer。
比如发个邮件给我:alsotang 在 gmail 点 com
说起来,我对于今天的 Spam 行为很好奇。我想知道为什么他不去攻击 ruby-china 或者 V2EX,而是来攻击我们这个流量小得多的论坛。或者说,他已经攻击过上面两家了吗…
嗯,成本高一些,不过如果直接智能github注册 + 刷贴的话就没问题了,所有的机制都能破解,除非不开启注册功能。我先把本次刷贴的的源代码给大家学习,其实很简单。
cnode的代码安全性最好提高些。
req.post("http://cnodejs.org/topic/create")
.set("Cookie","抓取的cookie") // 这个cookie得到太容易。
.send({
"title":"xxx",
"t_content":"xxx",
"topic_tags":"","_csrf":"undefined"})
.end(function(err,res){
})
有时间我会写一个智能注册+刷贴,在贵站试试看,既然坛主在 http://cnodejs.org/topic/52cfc3d60f47798d1200248a 说的话很地道,有诚意。那下次的话我会象征的发几个贴,并且贴的内容会地道些。并把原理告诉大家。
还是那句话,有些时候诚意比什么都重要,坛主的诚意我看到了,至于我是谁就大家就不必知道了。
希望大家新年快乐!
@suqian 已经实效,设置成"undefined" 即可,而且_csrf 有效安全性也不高,防御不住。在限制上下手会有些作用。
最高级的方法是 智能注册 + 刷贴,这里就有个问题,限制单个用户的话,那么如果智能注册10个,同时发帖,也是防御不住的,比如屏蔽几个用户,会智能再注册几个github帐号,github注册限制太少了,他们不需要邮箱验证,这个。。。太不应该了。所以这个就需要一些特殊防御了,方法很多。