Captcha 模块

抵御 Spam 的进攻

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

Blog分类: 

使用 Captcha + TextImage 阻挡 Spam

Drupal的Spam模块虽然功能强大,但是其运作原理类似先将spam吃掉,然后再消化(先把spam甄别出来,设置为“未发表”状态,然后在运行 cron job 的时候将其删除),这样一来还是比较耗费资源,所以决定还是用 Captcha 模块。4.7 版本的 Captcha 模块重新做了调整,为了适应没有安装 GD 的用户使用,Captcha 将原有功能分解为两个功能:数字运算 Captcha 和 TextImage Captcha。所谓数字运算,就是说在留言时必须计算一道数学题,用来证明是真人在留言;而 TextImage 则和通行的Captcha系统一样,通过辨认图片上的字母来填写留言。后者需要同时安装一个单独的 TextImage 模块。呵呵,希望这下子可以更好的阻挡 Spam。因为用来 Captcha,所以决定暂时停止 Spam 模块,并且不再要求留言时填写 Email ,希望不给留言增加麻烦。

Blog分类: