冰古blog » wordpress » 2006 » 12 » 24 » 抵御留言spam

抵御留言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,已经大大改善。

15 Responses to “抵御留言spam”

  1. Dim says:

    哇~试试ajax效果……

  2. 冰古 says:

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

  3. Freeman says:

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

  4. 冰古 says:

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

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

  5. Antonio says:

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

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

  7. 冰古 says:

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

  8. abananaskin says:

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

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

  9. 冰古 says:

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

  10. 冰古 says:

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

  11. 小贝 says:

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

  12. scavin says:

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

  13. scavin says:

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

  14. scavin says:

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

Leave a Reply to scavin