天魔窟

勇往直前

Avatar

史上最简单的 anti-spam 已经装备

嗯,sinzy 上出现垃圾评论已经有些年头了,正如软件被盗版其实说明你的东西受欢迎,Blog 被 spam 也说明了你的被链结率高,hoho~

早在 nirvana 的 0.5 版本我就加入了2个功能:“关闭单篇帖子的评论”,以及“设置整个 Blog 的陌生人评论需要被审核”。后者看来很是鸡肋,因为其功能不仅用起来不爽,也难以一下让人明白其含义。还是稍微解释一下:这个功能的开关位于后台的“个性化设置”的最下方,当被启用后,只有已经登录了的 sinzy 的注册用户,在该 Blog 上所发表的回复才会立刻显示,否则会被暂存,需要从后台的“评论审核”区中审核通过才会显示,当然,也可以不通过审核直接删除。之所以不好用,主要在于对于偶尔产生的垃圾评论,打开这个功能就限制了太多的正常回复,也使得 Blog 不太符合开放的传统。不过,虽说不实用,但是既然做了,我也就保留着。

最近的 spam 又有抬头趋势,且内容都太无聊,今天 pcman 也提出了这个问题,于是稍微考虑了一下,决定先弄个最简单的防御措施。

经过我观察,发在 sinzy 上的 spam 的特点主要就是大量的 URL 地址,一篇 spam 里至少30个吧。于是……在保存回复的地方加了个判断,如果回复内容中的 URL 字符串的书目超过25个,就认为可能是 spam,此条回复将不会立刻显示,而是放在审核区中接受检查。

这么弱的东西,不知道效果如何,先试试看吧。曾经被 spam 的同学建议不时去评论审核区看看~帮我一起改进~ :)

另,给评论加验证码可能是很好的手段,但,1. 我现在还不会写 ASP 的验证码,也懒得用现成的。2. 个人极其反感验证码,和户口一样恶心。

一度兴起还想给 nirvana 加上插件功能,但是很久不写 ASP 了,一时还没有状态。如果改,我觉得现在的优先级还不如弄出 SQL Server 的版本,免得总是停留在玩具层次。

最后鄙视发 spam 的人,生孩子得先天性肛门闭塞症!

UPDATE@2007-1-20 0:07 GMT+1
哈哈,刚放上去就捕捉了一个 spam!嗯,再自我补充几点 spam@sinzy 的特征:
1. 回复文字基本都是英文,含有30+的 URL 字符串。
2. 回复人的名称都是英文
3. 回复人的邮件和网址一般都不为空
4. 被 spam 的帖子的标题一般都是英文/含有英文(我因此关闭了好几篇的评论)

能否像邮件反垃圾系统那样直接调用spamassassin来判断
http://spamassassin.apache.org/

这个智能就高多了,还可以写各种规则。

好,大家一起来捉虫。

魔高一尺 道高一丈

骂人那句好搞笑,鄙视下发spam的家伙

智能学习spam评论的关键字,智能过滤,呵呵

评论已关闭