抵御留言spam

关掉Bad Behavior后,Akismet平均每天能拦截下六七十个spam,让人极其不爽。
所以又开始关注抵御spam的plugin和hack。最近香港的wordpress user提到的解决方法之一,使用.htaccess编辑rewrite规则,可将spam拒之门外。但使用到.htaccess,也注定这个方法具有一定的危险性,一不留神,可能是500报错。
在逛v2ex时得到一个启发,得出一种抵御留言spam不错的方法,经过一天的试验,可以基本保证留言spam不再发生。但此方法只能抵御留言spam,不能抵御trackback和pingback。
原理就是spam留言机器人,是不会打开javascript的。所以如果你关闭了javascript将无法在冰古blog中留言了。
由下图可看到akismet收集到的spam都是trackback
fight comment spam

修改方法:
在模板comments.php页中查找textarea标签,如冰古blog的:

<p><textarea name="comment" id="comment" cols="70" rows="10" tabindex="4"></textarea></p>

用下面的代码覆盖:

<script type="text/javascript"><!--
document.write("<p><textarea name=\"comment\" id=\"comment\" cols=\"70\" rows=\"10\" tabindex=\"4\"></textarea></p>");
  //--></script>

DONE!

BTW,冰古blog也用上了ajax留言
Update:看来这个还不是很完美,第二天出现了留言spam。但两天的spam总数为21,已经大大改善。

14留言于“抵御留言spam”

  1. 冰古说:

    @Freeman,那个插件我也注意到了,改天也试试。

  2. Freeman (1 comments.)说:

    Raven’s Antispam (http://kahi.cz/blog/ravens-antispam-for-wordpress)不错,同样是用JavaScript,装了它后,我没收到过一条垃圾评论.

  3. jack (1 comments.)说:

    不错

  4. 冰古说:

    曾经看过一款发spam的东西,也类似浏览器。这个方法的确不太好使,但应该也能档住一些吧,反正不会造成太大的资源消耗。

    不通过页面,那不是变成trackback了。
    不过貌似wp-comments-post.php里的确没有函数是检查comment是从哪里发过来。如果加个检查的函数不是可以防止这样的spam了?

  5. Antonio (2 comments.)说:

    这可能还不能跟上解决,有些变态留言是用程序群发的,不通过你的页面 :???:

  6. BloggingPro China » 抵制Spam方式两种说:

    [...]   關於垃圾留言/trackback,抵御留言spam。前者是利用.htaccess,后者利用javascript,推荐阅读。 Tags: htaccess, js, spam [...]

  7. 冰古说:

    试用过,但在打开permalinks时有bug,就没再用了。现在看应该修正了。

  8. abananaskin (2 comments.)说:

    math-comment-spam-protection这个插件也是不错的

    可以在留言中加入数字计算验证,也可以有效地防止SPAM
    插件地址:http://sw-guide.de/wordpress/comment-spam-protection-plugin/

  9. 冰古说:

    @小贝,没有使用插件的,直接改代码就可以用了。

  10. 冰古说:

    1、你关闭javascript,然后刷新本页,再拉到留言区看看。
    2、订阅comment为什么不用http://co.mments.com/呢?注册后,在要订阅comment的post上点击他们提供的bookmarklet就可以订阅了。
    3、呵呵,我用的插件地址在这篇post的结尾有。ajax功能不用修改theme,激活就可以使用了。这个plugin还提供CAPTCHA,需要修改theme,不过我没有使用。

  11. 小贝 (5 comments.)说:

    对了,你上面的代码用的什么插件?

  12. scavin (17 comments.)说:

    这个AJAX的留言好爽,用的那个插件啊?我改模版呢,也想弄一个,有教程没有啊

  13. scavin (17 comments.)说:

    把留言邮件订阅的那个插件加上吧,那样方便点

  14. scavin (17 comments.)说:

    取消那个以后有什么区别啊

留言

留言有惊喜!在“冰古blog”累计留言超过3条,你的链接将享受“dofollow”待遇。

Markup Controls
Emoticons Smile Grin Sad Surprised Shocked Confused Cool Mad Razz Neutral Wink Lol Red Face Cry Evil Twisted Roll Exclaim Question Idea Arrow Mr Green

提示/Tips可使用Ctrl+Enter快速提交留言
冰古blog启用了SCP防止留言垃圾,请确保留言包含中文字符。Your comment must include some Chinese in order to pass the comment checking.