几年来,为了对付Spam(垃圾评论、广告留言),我付出了沉重的代价:在采用“特殊措施”之前的“LBS(我3前使用的博客程序)阶段”,最多每天要批量删除4位数的垃圾评论。这也是为什么我一直都对各种形式的Spam深恶痛绝:损人不利己嘛!其实,互联网从业者与Spammer(发垃圾评论的程序或者人)的斗争,从未停止、甚至愈演愈烈。就想人类与癌症的斗争一样:癌细胞如不铲除,就会不断吞噬人体本身需要的资源最终夺取生命。这个道理,我想Spam与网站管理员双方都心知肚明。
当然,Spam本身的低成本也导致部分“互联网从业者”转型而专门从事这一行。最终建立起一些病态的“生态链”。据我观察,一些知名网站的广告位都被Spam所“投资”占有,并劫持正规流量(也许是合作分成,谁知道?)。因此,简单的把Spam划到互联网行业外,肯定不合适。此外,我之前曾经写过一篇“发垃圾评论能赚多少钱?”,有兴趣的可以看看,对于初期入行的Spammer,尤其是那些聪明地Spammer,的确能捞到相当油水。
再分享一下我个人的经验,在与Spam反复拉锯,万般无奈之下,我先后采用了如下“特殊措施”:
- 更换到现在的WordPress程序,启动验证码(从加法运算到数字图形,都试过)
- 更换验证码算法并统一由早期著名WordPress反垃圾插件SK2保护
- 启动了一些列JavaScript保护方式并更改POST提交目标
- 开启了Automattic提供的利器Akismet(遗憾的是据说这个会影响发评论的响应速度)
- 去掉所有留言者的链接(虽然我不想这么做,但这么做最有效。这里想说的是,留言时填的链接我都记住了,未来我会想办法恢复)
这“5道防线”,直到4和5,才开始真正生效(现在基本每天控制在5-10条之内的垃圾评论)。数据说明,验证码没有什么防御能力:更何况,对于那些盯上你的人肉Spam,它能在你把他删掉之后还跑来留言骂你,这么厉害的Spam,验证码岂能挡住?今天,又听到有国外的朋友如此评价人肉Spam:“……他们(盈利机构)雇佣大量的廉价劳动,尤其是第三世界国家的人,往往是一个屋子里全是(人肉Spammer)”,我实在觉得心寒。在Web2.0逐渐发力并且用户和网站主保护自我的能力逐渐增强之际,居然还有这么多的人愿意浪费自己宝贵的青春去和验证码作斗争,这实在是不划算!我建议看到这里的人肉Spam好好想一下,你们的老板付的那些工资和你浪费的时间是否成正比。依我看,CPI涨的这么快,你们至少得要求把工资乘以二吧。
最后,总结时间,我认为验证码的脆弱之处有三:
- 机器可以破解简单的算法
据说好一点的计算机破解一个简单的验证码只需要毫秒级的运算时间。这一点我深有体会,当年LBS加了一个“中规中矩”的验证码,结果Spam照样成群结队。
- 无法抵御人肉攻击
上面说了,大量的廉价劳动力Spammer会瞬间瓦解你的验证码体系。
- 无法抵御“社会工程学”欺诈
热心读者Cat Chen曾经私下告诉我一个很狠毒的方法:建立一个情色网站,放一堆美女照片,然后将你要破解的验证码图片放在每一张美女图片下方。然后,通知你的用户,每输入一次验证码,就显示下一张图片。如此反复,就会有大批的“人狼肉”用户帮你来解决大量的验证码了:)
说的再多,不如究其根本:验证码本身的行为和任务目的有漏洞!验证码的行为是判断“这个人是否是一个人”,而不是如我们期望地去判断“这个评论是否是一个垃圾评论”。这种行为和目的的差异,是它最终必将被时代淘汰的根源。至于去掉验证码之后是否能有办法消灭Spam,俗一点说,就好比:“消灭强奸犯的最有效方式不是全部判死刑,而是将性产业和性教育进一步发展下去”。我们需要一个行业的领袖,Google在许多方面,已经走在了行业的前沿;而国内这边,看看瑞星和360还争得面红耳赤,不得不说也是件好事:至少大家开始重视这些问题了。