Go to comments ↓ Home » Blog

反垃圾评论:WP Anti Spam + Spam To Blacklist

Wordpress这年头 Spam(垃圾评论)越来越猖獗,在我们使用的 WordPress 平台亦是如此。

当然,万能的 WordPress 对付 Spam 的方法也有很多。
个人并不喜欢使用验证码、算术题之类的,那虽然很有效,但会给评论者造成麻烦。
而评论审核则会影响体验,仅在离开较长时间才会打开。

再此分享一下我的反垃圾评论方案:免插件的WP Anti Spam + Spam To Blacklist 插件。

wordpress 反垃圾评论

这是两个月内收到的 Spam,该清理了~

WP Anti Spam 小墙,免插件的反 Spam 方案

我之前一直是用着 wp 自带的 Akismet ,使用黑名单机制,但无论对机器还是人肉 Spam 都很不错,还能自动学习。
不过时不时会把一些正常的评论误杀了,导致经常要跑去检查垃圾评论- -。

后来发现了这个 WP Anti Spam ,昵称小墙是免插件拦截垃圾评论的利器
来自低调的大师 Willin Kan ,周围的很多朋友也在用着,评价很高。

小墙原理和功能

其原理可以简单理解为:添加一个隐藏的资料框(属性为 display:none 的 textarea),因为用户是看不到的,如果该区域被填满则判断为 Spam。
还也能判断一些手动方式的。

WP Anti Spam 小墙

另外还在后台提供了spam 的基本资料,包含请求( REQUEST_URI )、来路( HTTP_REFERER )、IP、操作方式,,可提供下一步加强防护的参考。(见上图)

使用 WP Anti Spam 小墙的方法

效果出色,还免插件,没什么好犹豫的。
将以下代码复制到主题的 functions.php 中即可。

/* <<小牆>> Anti-Spam v1.81 by Willin Kan. */
//建立
class anti_spam {
  function anti_spam() {
    if ( !current_user_can('level_0') ) {
      add_action('template_redirect', array($this, 'w_tb'), 1);
      add_action('init', array($this, 'gate'), 1);
      add_action('preprocess_comment', array($this, 'sink'), 1);
    }
  }
  //設欄位
  function w_tb() {
    if ( is_singular() ) {
      ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#",
      "textarea$1name=$2w$3$4/textarea><textarea cols="\"100%\"" rows="\"4\"" name="\"comment\""></textarea>",$input);') );
    }
  }
  //檢查
  function gate() {
    if ( !empty($_POST['w']) && empty($_POST['comment']) ) {
      $_POST['comment'] = $_POST['w'];
    } else {
      $request = $_SERVER['REQUEST_URI'];
      $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER']         : '隱瞞';
      $IP      = isset($_SERVER["HTTP_VIA"])     ? $_SERVER["HTTP_X_FORWARDED_FOR"]. ' (透過代理)' : $_SERVER["REMOTE_ADDR"];
      $way     = isset($_POST['w'])              ? '手動操作'                       : '未經評論表格';
      $spamcom = isset($_POST['comment'])        ? $_POST['comment']                : null;
      $_POST['spam_confirmed'] = "請求: ". $request. "\n來路: ". $referer. "\nIP: ". $IP. "\n方式: ". $way. "\n內容: ". $spamcom. "\n -- 記錄成功 --";
    }
  }
  //處理
  function sink( $comment ) {
    if ( !empty($_POST['spam_confirmed']) ) {
      if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment; //不管 Trackbacks/Pingbacks
      //方法一: 直接擋掉, 將 die(); 前面兩斜線刪除即可.
      //die();
      //方法二: 標記為 spam, 留在資料庫檢查是否誤判.
      add_filter('pre_comment_approved', create_function('', 'return "spam";'));
      $comment['comment_content'] = "[ 小牆判斷這是Spam! ]\n". $_POST['spam_confirmed'];
    }
    return $comment;
  }
}
$anti_spam = new anti_spam();
// -- END ----------------------------------------

另外,我们可以看到很多 Spam 都是直接向 wp-comments-post.php 发出请求。
由于我使用了 Willin 大师的 Ajax comments,所以也可以把 wp-comments-post.php 给重命名了,这基本上阻挡了所有的机器 Spammer,不过没有 Spammer的日子也寂寞,哈哈。

Spam To Blacklist 插件,对抗人肉 Spam 的利器

这是来自 jiucool 同学的原创插件。
Spam To Blacklist 这个插件的作用是,在用户手动标记为垃圾评论时,自动将其 Email 和 URL 添加到评论黑名单。

小墙在对付机器 Spam 之类的无比强大,但并不是采用像 Akismet 那种黑名单机制,人肉的 Spammer 容易漏网。

这个Spam To Blacklist 刚好能补充这方便的不足,人肉对抗人肉,插件是把操作给简化了
消灭那些 xx Seo,xx推广,xx网站 – -。

为了更新方便,请移步到 Spam To Blacklist 的主页下载。

下载插件后,解压完成将其上传至 /wp-content/plugins/ 目录,然后启用之即可,无需其他操作!

这就是我目前的反垃圾评论方案,你的呢?欢迎分享经验^ ^

» 转载请以超链接形式注明来源:A.shun Blog » 《反垃圾评论:WP Anti Spam + Spam To Blacklist》
» 本文链接地址:http://www.a-shun.com/archives/21377.html

» 本文采用 BY-NC-SA 协议进行授权。
» 建议通过 Rss( Google Reader | Feedburner | Feedsky )方式及时获取更新。
  1. 小墙是个好东西,一直很感激Willin 大师。 :arrow:

    Opera 10.60 Opera 10.60 Windows 7 Windows 7
    #1
    @
  2. 很早就用过,但是后来和主题有点冲突,还在找毛病

    Firefox 3.6.8 Firefox 3.6.8 Windows 7 Windows 7
    #2
    @
  3. 人肉对人肉,嘎嘎 :razz: :razz:

    Mozilla Compatible Mozilla Compatible Unknown Unknown
    #3
    @
  4. 哈哈,我这点子不错吧,jiucool V5,willin V5

    Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
    #4
    @
  5. 人肉对人肉~~~
    willin大师造福了很多人啊

    Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
    #5
    @
  6. 请求,来路是1.81才有的么,我用的1.8

    Google Chrome 6.0.453.0 Google Chrome 6.0.453.0 Windows XP Windows XP
    #6
    @
  7. 深深受益中 :eek:

    Firefox 3.6.8 Firefox 3.6.8 Ubuntu 10.04 x64 Ubuntu 10.04 x64
    #7
    @
  8. 最近一直都是广告留言,试过几个插件都不行,现在我还是开着审核的,我也换这个用用 :neutral:
    ps,我换个邮箱填了 :!:

    ChromePlus 1.4.0.0 ChromePlus 1.4.0.0 Windows 7 Windows 7
    #8
    @
  9. 小墙和我用的主题参数冲突,我有不知道是哪个参数,悲剧啊…

    Firefox 3.6.8 Firefox 3.6.8 Windows 7 Windows 7
    #9
    @
  10. Akismet还不错,就是有时误判 :!:

    Firefox 3.6.8 Firefox 3.6.8 Windows 7 Windows 7
    #10
    @
  11. 有句话说得对,没有SPAM也挺寂寞

    Google Chrome 5.0.375.125 Google Chrome 5.0.375.125 Windows XP Windows XP
    #11
    @
  12. 我博客的Spam基本是全字母的,用Input Some Chinese,挺好。 :grin:

    Firefox 3.6 Firefox 3.6 Windows 7 Windows 7
    #12
    @
  13. 第二次看这段代码,大概理解了工作方式,把原来name=”comment”的输入框隐藏再加上一个name=”w”的输入框,如果w有内容而comment没内容就说明不是spam(人肉的不能检测),一般软件是直接向comment发送信息

    Google Chrome 6.0.477.0 Google Chrome 6.0.477.0 Windows 7 Windows 7
    #13
    @
  14. 我用的小蜜蜂和小墙是一个原理

    Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
    #14
    @
  15. 好东西啊,垃圾评论真是件头痛的事情

    我启动spam_to_blacklist插件的时候总是报错,奇怪啊

    Firefox 3.5.7 Firefox 3.5.7 Windows XP Windows XP
    #15
    @
  16. 现在一直只用小墙

    ChromePlus 1.4.0.0 ChromePlus 1.4.0.0 Windows 7 Windows 7
    #16
    @
  17. 装上去试试 看来垃圾评论很多。

    TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition
    #17
    @
  18. 我还是用自带的,现在评论已经不多了,spam却越来越多。

    Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
    #18
    @
  19. 对于访量不大的个人博客来说~垃圾评论简直就是奢侈啊~哈哈~

    Firefox 3.6.8 Firefox 3.6.8 Windows 7 Windows 7
    #19
    @
    • @爱月 还是很多的,机器spam不管你的访问量,很多都是根据网址段群发的

      Opera 10.61 Opera 10.61 Windows XP Windows XP
  20. 我看到强大的评论数量了` :grin:

    Firefox 3.5.11 Firefox 3.5.11 Windows XP Windows XP
    #20
    @
  21. 我的小站…暂时无需用到这种大型杀伤武器~~ :cool:

    不过我是比较不喜欢用验证码之类的~ :idea:

    Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
    #21
    @
  22. 以前经常有大量的垃圾评论,现在一天也就几条,习惯了,要是一条没有,还真没习惯,呵呵。
    PS:为啥人肉就会填那个隐藏的文本框呢?

    Internet Explorer 8.0 Internet Explorer 8.0 Windows XP Windows XP
    #22
    @
    • @世纪之光 人肉当然不填了,好像有另外的规则对付人肉,不过效果一般。
      所以用下面的辅助

      Opera 10.61 Opera 10.61 Windows XP Windows XP
  23. 自从在A5发文章,一个多星期了,同一个人天天发,我估计是他们有专门的软件吧。

    Google Chrome 5.0.375.125 Google Chrome 5.0.375.125 Windows 7 Windows 7
    #23
    @
  24. 垃圾邮件无处不在,碰到会让你遍体鳞伤 :mrgreen:

    Firefox 3.6.3 Firefox 3.6.3 Windows XP Windows XP
    #24
    @
  25. 目前spam不多,还可以处理得过来,如果人肉的评论和内容相关我还是会手下留情的,推广不容易 呵呵。
    这个插件相当于设个陷阱给机器人跳~

    Google Chrome 6.0.472.0 Google Chrome 6.0.472.0 Windows XP Windows XP
    #25
    @
  26. 很好的人肉对抗人肉插件,之前在Z叔叔那边也看到类似的插件~

    Maxthon 2.0 Maxthon 2.0 Windows XP Windows XP
    #26
    @
  27. 这个插件也很强大

    Maxthon 2.0 Maxthon 2.0 Windows XP Windows XP
    #27
    @
  28. 我一直用的是系统自带的反垃圾.

    Google Chrome 6.0.483.0 Google Chrome 6.0.483.0 Windows 7 Windows 7
    #28
    @
  29. 我用Akismet

    Firefox 3.6.6 Firefox 3.6.6 Windows XP Windows XP
    #29
    @
  30. 暂时还是用着akismet,还够用……

    Google Chrome 5.0.375.125 Google Chrome 5.0.375.125 Windows XP Windows XP
    #30
    @
  31. 其实我想问下有没有根据URL来spam的插件,一般发广告的都带url。

    Google Chrome 6.0.486.0 Google Chrome 6.0.486.0 Windows XP Windows XP
    #31
    @
    • @BoKeam 更加url来spam- -
      有时候访客也会发url的吧。
      而且这个功能wp自带了的,在设置>讨论里面:当一条评论有x个或更多超链接时放入等待审核队列。

      Opera 10.70 Opera 10.70 Windows XP Windows XP
  32. 先用着Akismet
    Willin大师的小墙也看过,以后考虑用不用

    Firefox 3.6.3 Firefox 3.6.3 Windows XP Windows XP
    #32
    @
  33. 原来我在哪里好像看到过小墙,当时就用了,到现在无一错判,非常好用! :roll:

    Google Chrome 5.0.375.127 Google Chrome 5.0.375.127 Windows XP Windows XP
    #33
    @
  34. Akismet我用着不错,人肉spanner倒是经常没抓到,误判倒没发现,估计是我留言数量太少了吧

    Firefox 3.6.8 Firefox 3.6.8 Windows 7 Windows 7
    #34
    @
  35. 已经在wordpress啦和某位博主的留言里介绍了,刚好有不少朋友被这个困扰

    Firefox 3.6 Firefox 3.6 Windows XP Windows XP
    #35
    @
  36. 现在没用这上了 :wink:

    Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
    #36
    @
  37. 主要是人肉的比较难对付~

    Firefox 3.6.8 Firefox 3.6.8 Windows 7 Windows 7
    #37
    @
  38. 试试先~

    Google Chrome 7.0.517.0 Google Chrome 7.0.517.0 GNU/Linux GNU/Linux
    #38
    @
  39. 看样子很不错呀。收下了。 :roll:

    Opera 10.61 Opera 10.61 Windows XP Windows XP
    #39
    @
Leave a Reply

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

Trackbacks and Pingbacks: