vicalloy
V2EX  ›  问与答

WordPress 如何应对垃圾评论?

  •  
  •   vicalloy · Aug 16, 2014 · 4820 views
    This topic created in 4465 days ago, the information mentioned may be changed or developed.
    WordPress的垃圾评论真是泛滥成灾,每天都有超多的垃圾评论。
    已经启用Akismet,垃圾评论基本上可以全部拦截掉。
    但问题是主机资源比较有限,不时会收到主机商发来的issue,提示MySQL由于处理时间太长被kill掉。
    各位是怎么处理垃圾评论的问题的?

    PS:
    估计很多朋友会建议换其他系统,这就不折腾了。用WordPress最大的好处就是省心。
    25 replies  •  2014-11-25 23:52:19 +08:00
    Automan
    Automan
    Aug 17, 2014
    1
    我用 disqus。。
    kmvan
    kmvan
    Aug 17, 2014 via Android
    2
    一个验证码就ok了
    hjc4869
    hjc4869
    Aug 17, 2014
    3
    SI CAPTCHA
    yylzcom
    yylzcom
    Aug 17, 2014 via Android
    4
    我会建议你优化mysql或者换主机商
    Showfom
    Showfom
    PRO
    Aug 17, 2014
    5
    我直接用多说了。。
    Jat001
    Jat001
    Aug 17, 2014
    6
    我以前写过一个很2的脚本…… https://gist.github.com/jat001/8639850
    kavinyao
    kavinyao
    Aug 17, 2014 via iPhone
    7
    按照lz的情况还是升级VPS吧,没有两全其美的事情。
    seki
    seki
    Aug 17, 2014
    8
    我自己在用 Stop Spammer Registrations Plugin 以及 Captcha 两个插件,没有用 Akismet。拦截率还行,很少有漏过去的。

    占用资源大不大倒是不清楚……蹭的别人的 VPS
    sandtears
    sandtears
    Aug 17, 2014
    9
    硬件升级成本又不高,升级硬件呗。
    zjgood
    zjgood
    Aug 17, 2014 via Android
    10
    @seki 楼主可能觉得akismet拦截太慢了吧,评论提交之后会卡住一会儿才显示。不知道V友你介绍的插件判断得快吗
    zjgood
    zjgood
    Aug 17, 2014 via Android
    11
    @Showfom 多说太不稳定了吧。而且巨丑。但是disqus很多人又不会用。。。
    WildCat
    WildCat
    Aug 17, 2014 via iPhone
    12
    @zjgood disqus有中文版,话说我认为不会用它的用户不是我的目标用户
    Pete
    Pete
    Aug 17, 2014
    13
    不知道为啥我一直没有垃圾评论 没用插件
    先禁止纯英文评论 然后ajax发表
    然后就不知道为什么了。。
    zjgood
    zjgood
    Aug 17, 2014 via Android
    14
    @Pete 直接禁止中文和日文。。。我试试还有垃圾评论不
    hsiayc
    hsiayc
    Aug 17, 2014 via iPhone
    15
    Disqus在手机浏览器上显示失败,访客评论没有邮件通知,还是原生自带最好。
    jakehu
    jakehu
    Aug 17, 2014
    16
    装个多说搞定
    xenme
    xenme
    Aug 17, 2014❤️3
    17
    我以前每天要清理两次垃圾评论,现在基本没见过垃圾评论了:
    1. 禁用纯英文的回复,直接后台加个正则匹配就好,这样基本可以拦截大部分垃圾评论
    2. 后台设置过滤的关键词: http, www, .com, .net 类似
    这是最简单的,做了这两个之后,基本能拦住大部分关键字,但是还是有些机器人会直接 post 或者通过 ping back、trackback 来发送垃圾评论。
    然后我找到一个终极解决方法:
    把评论的提交的地址从wp-comments-post.php改成wp-comments-post2.php,然后在前台的评论表单上在输入评论的内容里面做 onfocus 事件,当 focus 后,把默认的post action 改成正确的就好了。机器人的话,基本都是直接提交到原来的地址,肯定没法提交。正常人,肯定要输入,那么一定会触发 onfocus,那么肯定可以正确提交。
    改完之后,加上 disable pingback/trackback,就再没有收到过垃圾评论。
    -------
    以上只能防机器人,要是有人专门搞你的站,那没办法。不过就我们这种访问量小的可怜的,估计没人闲得搞你。
    Mihuwa
    Mihuwa
    Aug 17, 2014
    18
    官网上是这样做的,也能防暴力破解后台。当然针对的是采用POST提交的方式:

    # Stop spam attack logins and comments
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login)\.php*
    RewriteCond %{HTTP_REFERER} !.*example.com.* [OR]
    RewriteCond %{HTTP_USER_AGENT} ^$
    RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
    </ifModule>

    如果是Nginx使用一下:

    location ~* (wp-comments-posts|wp-login)\.php$ {
    if ($http_referer !~ ^(http://example.com) ) {
    return 405;
    }
    }

    记得把example换成自己的域名
    fox
    fox
    Aug 17, 2014
    19
    用第三方评论系统,禁用系统评论。
    比如disqus和多说
    seki
    seki
    Aug 17, 2014
    20
    @zjgood 没做过监控。我单纯就是觉得 Akismet 太麻烦才不用的
    Showfom
    Showfom
    PRO
    Aug 17, 2014
    21
    @zjgood 为毛我觉得多说比 Disqus 好看。。。。审美不一样么额
    fchypzero
    fchypzero
    Aug 17, 2014
    22
    disqus
    nieccyyy
    nieccyyy
    Nov 25, 2014
    23
    @Mihuwa 这个好像不错,已加上。
    Mihuwa
    Mihuwa
    Nov 25, 2014
    24
    @nieccyyy 原本想回复你发的那个帖子的,隔一天就找不到了,我贴的这几段代码来自WP官网,我自己使用后效果良好,至少达到了我的目的:)
    nieccyyy
    nieccyyy
    Nov 25, 2014
    25
    @Mihuwa 额,谢谢了。帖子还在 http://www.v2ex.com/t/148162 。另外推荐个V2EX搜索利器: http://shixiz.com
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2088 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 02:21 · PVG 10:21 · LAX 18:21 · JFK 21:21
    ♥ Do have faith in what you're doing.