前阶段在一些朋友的建议下,去掉了日志评论的验证码。说老实话,这也是我一直想做的,可无奈这又是抵御Spam最好的方法。而后,安装上Spam Karma 2,也是目前最好的防垃圾评论插件,几天下来效果还不错。
问题是,我发现他的功能过于强大,受宠若惊;此外,还会自己加三个表,记录Spam、logs还有很多特征信息。长此以往数据库会变得奇大无比,对于以后的升级、搬家都会有麻烦。我感觉这就是sk2的尴尬,过小的站点用不上如此强大的功能,而大的站点则会因为存的Spam过多,数据库过大而放弃。
这种类型的插件基本不可信任,只能自己寻找办法了。从自己动手阻止 WordPress 垃圾评论这篇日志得到启发,因为Spam的原理是找到页面里的textarea就会自动去填,我便伪造了个隐藏的,如果有内容,那肯定是Spam无疑。但这样做并不保险,如果Spam使用xml-rpc的方法发布的话,就无法防御了。对于wordpress的这部分,我并不了解,只是推测。
尝试一天后,发现两条Spam。对我来讲,国内的人肉Spam还不会关注我这样的站点,99%的垃圾评论都是国外机器友人自动发布的,于是便添加了评论审核。对于没有任何中文字符的评论,将不能通过,请留言的朋友们注意了。但这应该也只会影响到少数纯英语或纯表情的朋友,谁会留个言一个中国字没呢?
实现方法很简单,在wp-comments-post.php文件里加入下面两行即可。但改动wordpress源代码的行为对于以后的升级肯定是不利的,可以考虑做成插件。目前太简单,先看看效果吧。
if (!preg_match('/[\x80-\xff]./', $comment_content))
wp_die('Sorry, comment without a single Chinese character cannot be accpeted!');
10月17日更新:
在wp-comments-post.php中添加代码并不能有效防止robot,因为他是直接用xml-rpc,并不在textarea中填入数据,所以也不会走这里的验证。我现在用的是自己写的一个小插件,在wp_blacklist_check的函数中加入认证,并且屏蔽了href和strong的使用。另外,对于黑名单匹配的记录,不再识别为垃圾评论写入数据库,而是直接拒绝,这样一了百了。目前效果相当好。
如果定期删除 sk2, 我是指那种比较彻底的删除, 然后再重装有用吗?
如果你做出了好用的插件那我肯定捧场, 哈哈.
[回复]
NickyYe 于 2008 年 10 月 11 日 10:53 回复:
我觉得没问题吧,从数据库中彻底删除,哈哈。不过sk2判断的那些依据都是存在数据库中的啊。其实wordpress的垃圾评论也是这样的,并不直接删除,除非你加入审核队列删。因为他也要留给插件判断的。
[回复]
魔群月光 于 2008 年 10 月 11 日 12:03 回复:
我想的是: 反正彻底删除后再安装就跟第一次安装没什么两样, 既然第一次安装后可以过滤垃圾留言, 那么删除重装后还是可以的嘛, 呵呵.
[回复]
你最近博客人气突然好旺啊。
前一阵我留言总失败呢,肯定和你加的那个东西有关系。
[回复]
NickyYe 于 2008 年 10 月 11 日 15:21 回复:
好博客人气自然旺,哈哈。
这东西是我昨晚才加上的啊,前阵子一直用验证码。
[回复]
Akimet 真的那么差?它每天帮我拦截下很多 Spam 的。偶尔有一两条漏网之鱼算是可以接受的程度,毕竟人肉Spam的判定不是那么容易。
[回复]
NickyYe 于 2008 年 10 月 11 日 15:48 回复:
我先前用的时候wordpress.com被墙,就放弃了。不是说他每次判断的时候都要连那个网站的,我不知道是否可靠。但对于我主机不在国内来讲,应该没有影响。
主要是想自己搞个看看,斗争一下,:)
[回复]
Shawn 于 2008 年 10 月 11 日 15:52 回复:
你说的都是后台操作,实际上不会带来太大的服务器负担,对用户来说是全自动的,这就可以了。再说你现在用的是 Dreamhost,不用担心墙不墙的。
主要是觉得至少有中文这种判定不是那么地人性化。
[回复]
NickyYe 于 2008 年 10 月 11 日 16:01 回复:
确实,不过到底是相信它的判断还是相信自己的操作呢?
就像我说的,这个只是针对我个人blog而言的,一个评论没一个中文的大概相当之少,而spam基本都这样。当然作为插件通用来讲,就太搞笑了。
而且,我将来肯定还会转用sk、ak这样的插件,因为我觉得spam远不是我能抵御的,当然我希望可以,呵呵。
所以就是想试试,看看吧。
[回复]
用中文的方法不一定最好。另外,国外发SPAM的都能准确判断所使用的BLOG后台,一般加TEXTAREA也不起作用的。
[回复]
SK2很好很强大哦,我使用一年多了,呵呵。
[回复]
像我那种都长草了的博客,连防Spam的工夫都省了……
[回复]
我的博客没什么PR~~垃圾留言直接忽略我……所以就省事不装插件了~~~哈~~
[回复]
WordPress之前有玩过,但是买的是垃圾空间,所以用的很烦!于是就不想再买什么空间了!找个好的BSP,不过Blogger老是被GFW!而YO2又没有自主性!还是决定用Blogger!
[回复]
这个不错… 之前的机器”友人” 我都是批量删除… 还没泛滥到让我烦心的地步, 哈哈~~
[回复]
我上面,第一次评论直接设置为需要approved…
[回复]
我的博客才开没几天,老有垃圾留言,英文的
[回复]
NickyYe 于 2008 年 10 月 17 日 23:03 回复:
嗯,就是这个原因我才这么处理的,现在效果很好。
看来有必要出个插件呀,呵呵
[回复]
学习一下!好东西,受教了!谢谢!
[回复]