抵御 Spam 的进攻
Submitted by kzeng on Wed, 2007-08-15 20:57
网络的 spam 如幽灵般的细沙,一旦在网站里发现一个空隙,就源源不断的涌入。虽然 Drupal 的 akismet 和 spam 模块可以近乎完美的识别 spam 评论,但是他们在实施上有一个问题:spam 先提交给数据库再进行过滤。这样以来每次 cron 运行的时候都要删除数以万记的 spam ,加重了服务器端的压力,所以最好的办法是能够在 spam bot 留下评论之前就可以阻止它,于是有了各种各样的 captcha。 先用图像的 captcha, 这也是时下最流行的一种方式,但是有时图像里的数字字母过于难识别,即便是真人看到,也未必能辨别出来,所以又改用了算术题 captcha,留言是必须做一道的加法题,这种方法虽然方便了访客,但是却很容易被 spam bot 破解,因此仍然无法有效的阻止 spam 评论,所以最好有一种介于图像与简单数学题之间的辨别方式,于是就有了 Captcha Riddler 模块,可以自己设计一个问题,让访客留言的时候解答,以判断其是否是“人类”。这个模块还可以配合 i18n ,适合多语言网站使用。至于我这里,因为访客都是使用中文的,所以设置的问题很简单“一年有多少个月”,为了方面没有汉语输入法的访客输入,因此答案用阿拉伯数字即可。问题虽然简单,但是最近一段时间来成功的阻挡了 spam bot 的侵袭,也减轻了 akismet 和spam 模块的压力,效果很好,如果有同样的问题,不妨一试。