抵御 Spam 的进攻

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

Comments

有个更好也更简便的办法

只对中文网站有效:

Captcha很简单,放一两个汉字,然后让访问者输入其拼音。

汉字本身就是图形,破解不易...

只是放的字不要太生僻...

呵呵,这个办法倒是

呵呵,这个办法倒是不错,不过汉字的选择需要下些功夫,首先不能是多音字,另外还必须顾及一些受到方言影响的访客,譬如有些地方不是很分得清平舌音翘舌音,还有l,n 什么,呵呵

我也刚装上了一个类似的

这个spam真是太讨厌了。原来我有个相册,有留言功能的,有朋友家人随便写几句挺方便的。后来每天上百页的垃圾评论,手工删的我累死。后来没办法,只好把留言关了才了事。
后来有一个论坛上,本就没有几个人,过了一段时间被spammer叮上了,开始涌现垃圾的用户名,不为别的,就为了写上一个他们的网站。我用的phpBB,自己也不太懂,为这个痛苦了一年多。最近忍无可忍,终于成功的安装了一个MOD,就是注册的时候要回答一个问题。
在设置里可以预先选定好几个不同的问题,它会在注册的时候随机选其中一个。我现在设的问题,一个是中国的首都是哪,另一个是一个中文词的拼音。这个模块的有个特点是答案可以有好多个。比如第一个问题,我自己设的答案是:北京,bei jing, beijing, peking等,所以可以把多个可能的正确答案都包括进去。
自从装了这个mod后,把所有的垃圾注册都自动拒绝了,目前看来效果很不错。

Post new comment

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
3 + 0 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.