“验证码”这一概念终究将被时代所淘汰

几年来,为了对付Spam(垃圾评论、广告留言),我付出了沉重的代价:在采用“特殊措施”之前的“LBS(我3前使用的博客程序)阶段”,最多每天要批量删除4位数的垃圾评论。这也是为什么我一直都对各种形式的Spam深恶痛绝:损人不利己嘛!其实,互联网从业者与Spammer(发垃圾评论的程序或者人)的斗争,从未停止、甚至愈演愈烈。就想人类与癌症的斗争一样:癌细胞如不铲除,就会不断吞噬人体本身需要的资源最终夺取生命。这个道理,我想Spam与网站管理员双方都心知肚明。

当然,Spam本身的低成本也导致部分“互联网从业者”转型而专门从事这一行。最终建立起一些病态的“生态链”。据我观察,一些知名网站的广告位都被Spam所“投资”占有,并劫持正规流量(也许是合作分成,谁知道?)。因此,简单的把Spam划到互联网行业外,肯定不合适。此外,我之前曾经写过一篇“发垃圾评论能赚多少钱?”,有兴趣的可以看看,对于初期入行的Spammer,尤其是那些聪明地Spammer,的确能捞到相当油水。

再分享一下我个人的经验,在与Spam反复拉锯,万般无奈之下,我先后采用了如下“特殊措施”:

  1. 更换到现在的WordPress程序,启动验证码(从加法运算到数字图形,都试过)
  2. 更换验证码算法并统一由早期著名WordPress反垃圾插件SK2保护
  3. 启动了一些列JavaScript保护方式并更改POST提交目标
  4. 开启了Automattic提供的利器Akismet(遗憾的是据说这个会影响发评论的响应速度)
  5. 去掉所有留言者的链接(虽然我不想这么做,但这么做最有效。这里想说的是,留言时填的链接我都记住了,未来我会想办法恢复)

这“5道防线”,直到4和5,才开始真正生效(现在基本每天控制在5-10条之内的垃圾评论)。数据说明,验证码没有什么防御能力:更何况,对于那些盯上你的人肉Spam,它能在你把他删掉之后还跑来留言骂你,这么厉害的Spam,验证码岂能挡住?今天,又听到有国外的朋友如此评价人肉Spam:“……他们(盈利机构)雇佣大量的廉价劳动,尤其是第三世界国家的人,往往是一个屋子里全是(人肉Spammer)”,我实在觉得心寒。在Web2.0逐渐发力并且用户和网站主保护自我的能力逐渐增强之际,居然还有这么多的人愿意浪费自己宝贵的青春去和验证码作斗争,这实在是不划算!我建议看到这里的人肉Spam好好想一下,你们的老板付的那些工资和你浪费的时间是否成正比。依我看,CPI涨的这么快,你们至少得要求把工资乘以二吧。

最后,总结时间,我认为验证码的脆弱之处有三:

  1. 机器可以破解简单的算法
    据说好一点的计算机破解一个简单的验证码只需要毫秒级的运算时间。这一点我深有体会,当年LBS加了一个“中规中矩”的验证码,结果Spam照样成群结队。
  2. 无法抵御人肉攻击
    上面说了,大量的廉价劳动力Spammer会瞬间瓦解你的验证码体系。
  3. 无法抵御“社会工程学”欺诈
    热心读者Cat Chen曾经私下告诉我一个很狠毒的方法:建立一个情色网站,放一堆美女照片,然后将你要破解的验证码图片放在每一张美女图片下方。然后,通知你的用户,每输入一次验证码,就显示下一张图片。如此反复,就会有大批的“狼肉”用户帮你来解决大量的验证码了:)

说的再多,不如究其根本:验证码本身的行为和任务目的有漏洞!验证码的行为是判断“这个人是否是一个人”,而不是如我们期望地去判断“这个评论是否是一个垃圾评论”。这种行为和目的的差异,是它最终必将被时代淘汰的根源。至于去掉验证码之后是否能有办法消灭Spam,俗一点说,就好比:“消灭强奸犯的最有效方式不是全部判死刑,而是将性产业和性教育进一步发展下去”。我们需要一个行业的领袖,Google在许多方面,已经走在了行业的前沿;而国内这边,看看瑞星和360还争得面红耳赤,不得不说也是件好事:至少大家开始重视这些问题了。

Advertisements

34 thoughts on ““验证码”这一概念终究将被时代所淘汰

  1. # 开启了Automattic提供的利器Akismet(遗憾的是据说这个会影响发评论的响应速度)
    遗憾的是他会误判,我写了封信,似乎今天才出了黑名单。

  2. 看来需要启动基于智力的拦截系统了
    只是这样的话 人类和ai一视同仁 某些人类可能会沦落到ai的待遇 而某些高智商的人类创作出来的ai也许可以获取同人类一样的评论权

  3. Spam 如果得不到控制,早晚会摧毁现在的网络广告体系。如何能控制,就得大家见仁见智了。

    至于瑞星,实在是懒得说它什么了。反正我是坚决不用。

  4. 目前的 Akismet 这类反垃圾程序,已经是在反垃圾内容了,而和是否人肉没有关系,所以我才觉得,内容判断能做到的事情,就不要用验证码,我就不高兴输入验证码。

    关于Akismet, 其实它也是一个发动所有博主一起判断垃圾内容的模式,你在你的博客标记了一条垃圾,这条垃圾的特征(关键词,链接,邮箱)会返回,给其他所有Akismet博主一个自动判断的权值。大家投票反垃圾,我爱 Akismet!

  5. 毫不犹豫的跳出来指出一个问题。
    ————————
    说的再多,不如究其根本:验证码本身的行为和任务目的有漏洞!验证码的行为是判断“这个人是否是一个人”,而不是如我们期望地去判断“这个评论是否是一个垃圾评论”。
    ————————
    基于图灵测试发展而来的CAPTCHA,最主流的一种形式就是验证码。它的根本目的不是用来防止SPAM,在人肉SPAMMER越来越汹涌的今天,机器SPAM却也未必少得到哪里去。验证码这样一个机制,至少在机器SPAM数量和比例并未减少的今天,仍然有相当巨大的存在意义。
    虽然我也很不喜欢这个。
    上面小谢给出的意见很有意思哦。曾经在某一个网站看到这样一个功能。设计上类似cnbeta,但cnbeta评论里的支持和反对只是单纯的一个“民意”的表达。而这个网站有趣了,注册会员才能发表评论就算了吧,还有个叫“绿化”和“抹黑”的功能。对于恶意发布的SPAM啊,语言攻击啊,可以由会员做主,抹黑。每个人抹一次,这则评论颜色就黑一次。被人人反对的明显不和谐且背离群众意愿的评论,最后会变成一个黑条横在评论栏里……- -# 当然,也有反恶意抹黑的绿化功能,就是反其道行之。
    这和上面小谢的想法意思差不多,发动人民群众的力量。 比如说我在这里如果看到一则代开发票之类的评论,如果可以,我会毫不犹豫给这条评论来上一个抹黑或者直接删除。比方系统设定N个人反对之后,那么这条评论自动消失,那该多好。
    还有个想法,gmail的反垃圾功能那么强大,为啥不开发个类似akismet的东西。。。

    最后说下我对付spam的办法。
    = =#

    我关闭了评论。想评论的,请联系我,我手动给你添加能评论的帐号。。。

    1. 小刀这方法不错,让我们看到了一种具体可行的方法。不过问题也存在的,试想我们看到spam时的态度通常就是无视之,有谁会玩游戏似的去抹黑那些spam呢?除非这样做能让人得到一些特别的快感,但同时,一些良性评论也会因为一些意见不合的人来个敌意的抹黑,这恐怕也不是不可能。不过不管怎样还是可以解决spam问题了……

  6. 评论是blog的灵魂,没有评论也就不称为blog了。

    不过 spam 太让人可恨了。我曾经一段时间只允许中文评论,结果没有了spam。关闭后维持了好一段时间,现在都每天的 spam

  7. 我以前也想过这个问题,有个简单的方法适用于一般情况,就是判断留言链接数,因为我以前碰到的很多留言spam有大量链接,如果超过2个就判断是留言spam。

    1. 最根本的方法就是所有的传统行业正式互联网业务,自己以及各级代理做好自己的领地,维护好自己的权益。该SEO的,就SEO,该打击竞争对手的,就用法律武器捍卫。
      同时,用户也要提高反抗spammer的意识

  8. 支持open id的话
    就让他们来验证用户好了
    或者做个验证型的网站来统一管理
    不过这样的话速度太慢啦 :)

  9. 以前我的博客有英文的SPAM,后来屏蔽了主要几个 (S-E-X , P-O-R-N)的关键字后英文SPAM就少了。现在我的博客经常有俄文的人肉SPAM,下回搞个中文验证!

    1. 去掉链接,人肉spam自然不回来找麻烦了。
      对于那些正常留言者,可以通过一些插件或者MySQL查询予以回馈。这也是我接下来要做的工作

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s