防 Spam 的终极办法:Comments Link Redirect
2009年01月22日
国内垃圾留言横行,作为国内最大的搜索引擎百度对此负有不可推卸的责任,由于百度不支持 rel="nofollow" 属性,造成了 Spammer 恣意妄为,肆意到处留言,根据 Akismet 这个防垃圾留言插件的统计,2008 年12月一个月就收到 4000 多条垃圾留言。并且如果如果这些外链很多都是链接到垃圾站,会让导致博客在搜索引擎(主要是百度,Google nofollow 到垃圾网站也是没事的)中的降权,直接导致排名下降。
但是百度死不悔改,并无打算遵守这个事实标准,修复这个漏洞。当你看到自己博客的留言区一大堆链接是起重机,减肥这类的广告是什么样的看法,是的这些都是我们不愿意看到,我们只想拥有一个干净的博客环境,所以我开发了一个 WordPress 插件:Comments Link Redirect,勇敢对抗 Spammer 和百度,彻底解决 WordPress 中这个问题,使得 Spammer 即使成功留言了,也不会被搜索引擎索引。
Comments Link Redirect 这个插件的主要功能主要参考 Shawn 的防止SPAM的另类方法制作,这里首先感谢下 Shawn 的 idea。但是 Shawn 需要修改主题比较多的地方,还需要添加 JS 代码,比较麻烦,我修改了下做成 WordPress 插件,只需要上传激活,然后在 robots.txt 增加一行代码即可。
Comments Link Redirect 这个插件主要功能是把留言者的链接和留言中链接的 URL 转化为一个跳转链接,如:
http://fairyfish.net/?r=http://superdenis.com/
然后手工在 robots.txt 中添加一行以下代码即可:
Disallow: /?r=*
这样所有留言区的链接既不会被搜索引擎(包括百度,如果百度真如他所说它遵守 robots.txt 协议的话)索引,更不会给予权重。
PS1:第一版本,经 hamo 指出有点巨大漏洞,有修正。
PS2:忘记说了,该插件并不会减少你博客的垃圾留言,但是它能够让这些垃圾留言不能被索引,到你博客上获取权重,这样能够真正保护你的博客。
60 条评论 添加你的评论 →
发表评论
你必须 登陆 之后才能留言。你可以使用以下方式快速登陆我爱水煮鱼:

1. 大猫 | 2009:01:22 - 14:11:05 | #
无敌了,这个思路不错
2. Shawn | 2009:01:22 - 14:14:39 | #
一开始我也想弄跳转,后来觉得跳转对搜索引擎不友好,因为页面存在 Query Strings。最近出了个针对 Wordpress 的 spam 发送器,很恐怖。
3. Denis | 2009:01:22 - 14:16:34 | #
这个 query strings 没有问题啊,因为 robots 中已经屏蔽了啊。
4. 胡戈戈 | 2009:01:22 - 14:15:05 | #
“顶楼上的”这是收到最多的人肉spam
5. Denis | 2009:01:22 - 14:16:53 | #
顶胡戈戈!
6. wangyh | 2009:01:22 - 16:59:30 | #
顶楼上的
7. underone | 2009:01:23 - 12:06:52 | #
顶你们。。
8. Showfom | 2009:01:26 - 18:42:22 | #
我也顶你们
9. harde | 2009:01:27 - 18:13:04 | #
所谓的垃圾留言就是如此吧~~
10. 像头改更 | 2009:04:01 - 21:09:09 | #
11. feicun | 2009:01:22 - 14:26:32 | #
俺一年也收不到1000条spam,先不用了……
12. Hooken | 2009:01:22 - 14:35:36 | #
fucking 百度…
13. Magki | 2009:01:22 - 15:16:11 | #
14. 探客 | 2009:01:22 - 16:03:34 | #
矛与盾,可惜百度不遵守robots.txt
15. 流星 | 2009:01:22 - 16:14:14 | #
问题是百度似乎不遵守roots协议啊……
不过还是启用了,看看
16. Leeiio | 2009:01:22 - 18:25:31 | #
百度也無敵了…什麽都亂來
17. welee | 2009:01:22 - 16:14:50 | #
话说像我这种没名气的小小博客,上个月也收到了 30 几个垃圾留言,囧~
先下载试用看看。
18. hamo | 2009:01:22 - 16:18:10 | #
这样存在另外一个更严重的问题,没有对输入网址进行控制,容易被利用拿来贴危险链接。
比如在MediaWiki贴 http://fairyfish.net/?r=http://badsite.com/,可能导致 fairyfish.net被封禁,国内注册的域名还可能因为被投诉然后被停域名
19. Denis | 2009:01:22 - 16:24:15 | #
这个问题,没有考虑到,我想想怎么处理。
20. williamlong | 2009:01:22 - 19:41:34 | #
我以前在Wiki碰到过这个问题,通过refer禁用外部来源的链接即可。
21. Denis | 2009:01:22 - 20:16:33 | #
恩,我已经添加 refer 了。
22. hamo | 2009:01:22 - 16:24:17 | #
Z-Blog的网址转发和这个类似,月光的地址被维基百科列入黑名单:
http://www.williamlong.info/archives/1584.html
surl.cn被HOLD停用
http://www.pkphp.com/2008/12/01/surlcn%E5%9F%9F%E5%90%8D%E8%A2%AB%E5%81%9C%E6%AD%A2/
—-
贴了两个网址,不知道会不会被当垃圾留言
23. Denis | 2009:01:22 - 16:35:01 | #
好了,我已经解决了,我通过判断 HTTP_REFERER 不是本站就不跳转,哈哈!
谢谢你提供的 bug。
你现在看看直接吧地址复制到浏览器应该不跳转,而是直接到我首页。
24. Rat2 | 2009:01:23 - 14:39:10 | #
嗯,那如果…… http://twitpic.com/1640n 会怎么样呢?
25. Denis | 2009:01:23 - 14:52:27 | #
那是你设置你的浏览器,但所有人的浏览器并没有这样的设置。
26. Betty | 2009:01:22 - 16:53:53 | #
国外垃圾留言也很多,甚至更多,反正我收到的spam是英文居多……
27. 久酷 | 2009:01:22 - 16:59:11 | #
我这几天正为这个犯难呢,我即使加了验证码也天天收到 人工SPAM呢,我马上装了去试试
28. netputer | 2009:01:22 - 17:22:39 | #
何不,把 disallow /?r=* 自动追加到 robots.txt 呢?
29. 齐林 | 2009:01:22 - 17:35:28 | #
每天都会有那么几条,手动删除时间还是有的!百度的东西咱们不能信!
30. 老N | 2009:01:22 - 17:39:46 | #
再怎么跳转,来spam的机器人还是会有。只是spam了没用而已。
31. xiaorsz | 2009:01:22 - 17:43:27 | #
不错的东东!!保护的意义更大些!!
32. neekey | 2009:01:22 - 17:46:51 | #
百度基本不守robots.txt协议。
33. wangyh | 2009:01:24 - 22:47:57 | #
除了遵守taobao.com外~
34. Magki | 2009:01:22 - 17:50:03 | #
我来跑题的,鱼,更新我的链接吧。www.magki.com。嘿嘿
我是 Wady
35. Denis | 2009:01:22 - 18:01:48 | #
这个新域名什么意思啊?
36. Hong Xiaowan | 2009:01:22 - 20:45:33 | #
http://fairyfish.net/2009/01/22/comments-link-redirect/#comment-38237
测试一下,好东东
37. CQH | 2009:01:28 - 14:04:37 | #
我的一个垃圾评论都没有
38. Dianso | 2009:01:28 - 21:57:01 | #
很强大。
39. Lwy | 2009:02:06 - 19:57:29 | #
楼主好,我觉得,大家都犯了一个重要的概念性错误。
为什么会把垃圾留言和影响排名联系在一起呢??
那么如果有人,不发Spam,正常的留言,就不会影响你的排名了吗?
正常留言不等于正面影响
40. 老时 | 2009:06:09 - 23:45:52 | #
支持!
41. 禅猫 | 2009:02:13 - 23:00:19 | #
牛X
42. eric | 2009:02:14 - 21:22:23 | #
百度对robots可说是阳奉阴违呀
43. David | 2009:02:17 - 13:53:00 | #
如果放了这个 nofollow, 那么所有的留言,不论是正面的,还是拉级都不会被连上了?
44. Denis | 2009:02:17 - 14:51:14 | #
nofollow 是搜索引擎能够索引,但是不给权重。但是百度不这样认为。
45. am | 2009:02:22 - 10:10:07 | #
太有才了,我爱水煮鱼。
呵呵,希望继续带给我们更多好的插件。感谢你。
46. dakun | 2009:04:22 - 05:40:31 | #
鱼兄,我用了Platinum SEO,里面有选项设置是否被蜘蛛所以,那是不是就不用这插件啦?
47. dakun | 2009:04:22 - 06:04:31 | #
能分享下您本人都用了哪些插件吗?
因为想写blog,接触wp,因为wp,接触了seo,因为seo接触了Platinum SEO 以其为关键字百度,第一条是上善若水的相关文章,文中提到了您。
于是我到了这里
好比绘画一样,刚刚在创意阶段。很多模糊的概念除了自己搜索外还望得到经验权威的指点。盼复
48. chenlb | 2009:04:25 - 23:42:03 | #
这个很实用
49. sandlong@gmail.com | 2009:05:24 - 16:55:55 | #
测试一下:sandlong@gmail.com
50. 布语 | 2009:05:26 - 12:23:38 | #
INOVE主题不支持这款插件,能告诉我们怎么解决吗,飞猪AND小鱼!
51. Denis | 2009:05:26 - 16:13:23 | #
找 mg12!
52. jack | 2009:05:30 - 20:54:01 | #
加了个验证码,感觉国外垃圾邮件少多了~~~~~~~~~~~~~
53. 老白 | 2009:06:10 - 22:14:19 | #
还有一个比较严重的问题 就是你挥刀自宫了
比如你的域名 http://fairyfish.net 你点点看
也是跳转~ 这样就是一刀切了 建议多加个判断
如果是本站的域名 就不跳转 这样就更完美了
54. Fufu | 2009:06:12 - 11:04:41 | #
有个判断是会人性很多,不过评论里的链接也无所谓了,目的是达到的。
55. Fufu | 2009:06:12 - 12:32:46 | #
iNove 主题似乎启用后无效。
56. 摩凝(M.Chan) | 2009:09:22 - 11:29:26 | #
启用后403错误…
57. 少爷 | 2009:10:16 - 17:27:11 | #
有效的吧……
我刚去你的博客上看了
58. 少爷 | 2009:10:16 - 17:11:48 | #
为什么不发不到官方去呢?
59. 少爷 | 2009:10:16 - 17:39:22 | #
为什么我启用了之后没有效果呢?
60. Sevi | 2010:01:04 - 22:45:17 | #