采用新的防Spam方法

前阶段在一些朋友的建议下,去掉了日志评论的验证码。说老实话,这也是我一直想做的,可无奈这又是抵御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的使用。另外,对于黑名单匹配的记录,不再识别为垃圾评论写入数据库,而是直接拒绝,这样一了百了。目前效果相当好。

今天是我的生日,吼吼!

这么多大牌歌星抢在我生日前后发片

9月29日 10月6日 10月9日 10月13日
Ode to J. Smith Dig Out Your Soul 魔杰座

还有这么多影星争着出镜

10月03日 10月03日 10月09日 10月10日
Kirsten Dunst Robert De Niro 大片上映国内 Leonardo DiCaprio

Avril开演唱会,周杰伦发专辑,满足了。

得知余光中先生将于今天下午在南京图书馆新馆做主题演讲《当中文遇见英文》,而我却由于临时补课不能聆听,真是遗憾万分。

10月9日是John Lennon的生日,是Nicky Byrne的生日,还有布鲁查加、维杜卡。

当然,10月9日也是我的生日,到婚龄了。

生活,我所期望的在哪里

生活究竟应该是什么样的?一年前的厦门之行让我感触万千,发出了这样的叹息。一年多后的国庆,我又面临同样的困惑。

大概是对目前的生活状态过于失望,大概是对于自己能力判断过高,大概是对于未来期望过于美好,我总是纠结在一次次的美丽愿望和紧跟着的失望中。如果说本科四年给我上的最大一课是什么,我肯定不假思索的回答:“人和人是不能比的”。

几个星期前在网上看到一个叫做Hugh Crawford的摄影师,从出生那天起每天一张照片,直到离开。上面就是我出生那天他拍到的,巧合的是,帽子上写着我的名字(当然其实是纽约扬基)。我不知道照片里的人是谁,在什么情况下被拍进去的,看到这个网站我想到的是,有些人,他们敢于做自己想做的事,能让自己开心的事,而我,没有这个勇气。

生活大抵就是如此,甜蜜的童话故事过后终究会回到现实。我想到了无间道,刘健明在扎根警署一次次展现自己才华过后,痛苦的发现自己永远变不了梦想成为的那个角色。而我,现在做的恐怕就是把两者统一吧。

黑夜难眠。