防止SPAM的另类方法

我们知道,SPAM 的存在,很大程度上是因为一小撮搜索引擎(例如百度)不支持 rel="nofollow" 属性造成的。不支持 nofollow,就意味着搜索引擎会计算一个链接在互联网出现的所有次数,数量越多,链接在这个搜索引擎上的排位就越高。Spammer 坚持散布 Spam 的根本目的即是如此。

Blog 要真正杜绝 SPAM,只有从评论者的链接下手。目前互联网上存在两种做法:

1. 去掉评论者的链接,一了百了;2. 在链接前添加跳转页面,主动修复"一小撮"搜索引擎的漏洞。

第一种方法缺点十分明显,大部分人也不可能这么做;第二种方法比较合理,不过操作麻烦,而且地址中带有 QueryStrings(即'?'),对 SEO 不利。

其实可以换一种思路对第二种方法进行改造,既不影响 SEO,还无需写跳转页面。

首先检查模板的 comments.php 文件。

如果原先评论用户的调用函数是 <?php comment_author_link() ?>,请改为:

<a href="http://fanbaidu.com/<?php comment_author_url() ?>" rel="external nofollow"><?php comment_author() ?></a>

如果模板已经是这种方式,则注意观察区别。是的,评论访客的 URL 前面添加了一个 fanbaidu.com 的地址。操作完成后,访客的 URL 就变成了 http://fanbaidu.com/http://ishawn.net。

当然,fanbaidu.com 不会帮我们跳转,事实上这么做的目的也并非跳转,而是阻断百度一类搜索引擎对真实链接的计算。接下来利用 JS 隐去 http://fanbaidu.com/,让访客能够正确访问到评论部分的链接。

jQuery 代码:

<script type="text/javascript">
$(".commentlist li cite a").attr("href",function(){return this.href.replace('http://fanbaidu.com/','')})
</script>

*注:此处要求你根据你自己模板的实际情况替换 .commentlist li cite a 这一部分。

传统 JS 代码:

<script type="text/javascript">
function fanbaidu(){
var B=document.getElementsByTagName("a");
var A=B.length;var C="http://fanbaidu.com/";
for(i=0;i<A;i++)
{if(B[i].href.match(C))
{B[i].href=B[i].href.replace("http://fanbaidu.com/","")
}
}
}
window.onload=fanbaidu;
</script>

如果你的模板中已经引用了 jQuery 框架,使用第一种 js 代码就好;如果未引入 jQuery,请将第二种代码加入模板。

最后的结果,是访客在浏览器中得到正常的地址,搜索引擎索引的所有评论地址却都是 http://fanbaidu.com。

至于我的这个防止SPAM的另类方法有多大功效呢?这要取决于该方法的使用范围。我一个人使用,效果不大,但是使用的人多了,Spammer 便很快会发现努力播撒 SPAM 的回报越来越小,进而放弃在 Blog 上散播 SPAM。

做百度的人肉 SPAMMER,我特别欢迎你们来留言,浪费你们的时间,还让你们得不到丝毫的回报!

Tag(s): ,
  • QQ书签
  • Del.icio.us
  • 百度收藏
  • Google
  • 饭否
  • FriendFeed
Shawn Published@7:41 / 2008-11-29 / Trackback / Skip
34 Comments Contributed by Visitors
  1. rebutton久酷 / 7:58@2008-11-29 1
    久酷

    A googd idea,but I think it's complicated ,I 'm afraid that! :grin: :grin: especially when changing the theme!

  2. rebuttonShawn / 8:04@2008-11-29 2
    Shawn

    @久酷: 或许对超级菜鸟来说是有点复杂,但是没办法,超级菜鸟只有放弃了。

  3. rebutton久酷 / 8:06@2008-11-29 3
    久酷

    是啊,对我这个超级大菜鸟是有点复杂啊,呵呵

  4. rebutton久酷 / 8:08@2008-11-29 4
    久酷

    我发现你这里确实是加了不少效果,嗯,不错......

  5. rebuttonleehow / 8:13@2008-11-29 5
    leehow

    两位好早哦...

  6. rebuttoncosbeta / 11:16@2008-11-29 6
    cosbeta

    这样会打击部分正常的blog的留言积极性的

  7. rebuttonShawn / 11:19@2008-11-29 7
    Shawn

    @cosbeta: 浏览器还是返回正常链接,怎么会打击?除非留言真的是另有目的,那么也无所谓啦~

  8. rebutton雅丹地貌 / 11:21@2008-11-29 8
    雅丹地貌

    :smile: 不错 学习 博客也不错 支持

  9. rebuttonleehow / 11:21@2008-11-29 9
    leehow

    与垃圾抗争到底。

  10. rebuttonfisio / 11:46@2008-11-29 10
    fisio

    呃。。。太狠了

  11. rebuttonfisio / 11:47@2008-11-29 11
    fisio

    点击之后fanbaidu还在,找不到网页-.-

  12. rebuttonShawn / 11:48@2008-11-29 12
    Shawn

    @fisio: ??没发现这个问题啊。。

  13. rebuttonShawn / 11:49@2008-11-29 13
    Shawn

    @fisio: 刷新以后就好了。自己发表的留言是 JS 提交,所以暂时能看到。

  14. rebuttonfisio / 11:51@2008-11-29 14
    fisio

    @Shawn: 难道是刚发布评论时ajax效果时才有?现在没了

  15. rebuttonShawn / 11:52@2008-11-29 15
    Shawn

    @fisio: 是的,刚提交一瞬间才有,别人进来看不到的。

  16. rebuttonSivan / 12:37@2008-11-29 16
    Sivan

    我刚把评论链接的nofollow去掉了=。=感觉spam还是很少的。人肉的就没办法了,手动去掉。貌似去掉nofollow可以鼓励别人评论。

  17. rebuttonShawn / 12:39@2008-11-29 17
    Shawn

    @Sivan: 去掉 Nofollow 是可以鼓励评论,不过同时也等于在搜索引擎面前自杀。

  18. rebuttonNickyYe / 12:55@2008-11-29 18
    NickyYe

    我屏蔽所有不含中文字符的评论,99%的困扰都没了

  19. rebuttonShawn / 12:58@2008-11-29 19
    Shawn

    @NickyYe: 但是你阻不断他们的欲望嘛,还有中文SPAM呢?我这个是从根部下手,直接刺中它们的要害。

  20. rebuttonNetPuter / 13:19@2008-11-29 20
    NetPuter

    人肉SPAM,想挡都挡不住!

  21. rebuttonNickyYe / 13:21@2008-11-29 21
    NickyYe

    @Shawn: 呵呵,中文人肉我只能添加黑名单,好在不多

  22. rebuttonShawn / 13:21@2008-11-29 22
    Shawn

    @NetPuter: 谁说的,纯粹的人肉 SPAM 就能用这个方法搞定。他们都是刷百度的。

  23. rebuttonaunsen / 13:49@2008-11-29 23
    aunsen

    ishawn太厉害了,每天都能发掘出这么多有用有难度的东西,拜一个!虽然不怎么懂 :shock:

  24. rebuttonShawn / 13:50@2008-11-29 24
    Shawn

    @aunsen: 因为我自己需要用嘛。。。 :lol:

  25. rebuttonJor / 13:58@2008-11-29 25
    Jor

    我让他来Spam,然后提交黑名单去,为广大群众做做贡献。 :grin:

  26. rebutton任平生 / 15:40@2008-11-29 26
    任平生

    我只想坐看着那百度倒下,就不用这么麻烦了

    ps. 第二个js代码撑破页面了。。。

  27. rebuttonxiaorsz / 15:47@2008-11-29 27
    xiaorsz

    我昨天刚发现现在这个皮里评论里居然没有 nofollow ,忧伤!!
    对了,我换了域名了 xiaorsz.com 呵呵,麻烦帮我改下吧!!

  28. rebuttonElton Disney / 15:59@2008-11-29 28
    Elton Disney

    啊~~又是jQuery...
    我发誓我考完试之后一定要学jQuery

  29. rebuttonElton Disney / 16:00@2008-11-29 29
    Elton Disney

    难道说我的上一条评论成为Spam了?

  30. rebuttonfqch / 17:27@2008-11-29 30
    fqch

    不错,要是可以增加个跳转也不错呀

  31. rebuttoniColor / 18:57@2008-11-29 31
    iColor

    想折腾一下,但还有点不太清楚,快要考试了,这几天有点点累,
    我那最近也有少许垃圾...
    等考完车再看吧...

  32. rebuttonShawn / 20:22@2008-11-29 32
    Shawn

    @Jor: 最近 AK 越来越误判了。
    @任平生: 是什么浏览器?我没看出来呢?
    @xiaorsz: 好的。
    @Elton Disney: 是吗?看吧,这也就是我为什么想摆脱 AK,有人拿这这个乱标记。
    @fqch: 跳转要耗费一些资源嘛。

  33. rebutton大学生乱弹琴 / 22:28@2008-11-29 33
    大学生乱弹琴

    非名博的大学生用不到,呵呵~ :wink:

  34. rebutton花果山寨 / 23:06@2008-11-29 34
    花果山寨

    呵呵,人家人肉spam也不容易!这是一场无何止的战争!

  35. rebuttonShawn / 23:09@2008-11-29 35
    Shawn

    @花果山寨: 呵呵,是啊,所以我想尽快了结战役嘛。

  36. rebuttonk2max / 9:23@2008-11-30 36
    k2max

    cool ...
    这个好玩 .. :lol:

  37. rebuttondisinfeqt / 11:47@2008-12-03 37
    disinfeqt

    spammer可都是bots,难得会这么想...
    恩,还有换个链接怎么样?为表诚意,你的已经放置安好~
    name: 折叠侠 ZDXia.cn
    url: http://www.zdxia.cn
    description: n/a 或随意
    thx~
    :grin:

  38. rebuttonShawn / 11:54@2008-12-03 38
    Shawn

    @disinfeqt: 已经加好了 :smile:
    不管是不是 bots,他们的目的主要是反向链接。bots 也会分析链接结构,而不是无目的的寻找网络上的表单去填。一旦发现无利可图,它们就会放弃。
    我用此方法已经一个礼拜左右,现在效果良好,基本已经告别bot spammer,人肉的来了会自己看,得不到利益的事情我相信他们也不会干。

  39. rebutton探客 / 21:05@2008-12-18 39
    探客

    :cry: :cry: 太狠呢。

  40. rebuttonShawn / 21:33@2008-12-18 40
    Shawn

    @探客: 怎么都说狠。。。。这招不是很绝妙吗。。。

  41. rebutton当空接龙 / 1:01@2009-01-19 41
    当空接龙

    评论头像是用的什么插件啊 ?还有博主的这个菜单hover效果真不错呢 赞一个先

  42. rebuttonShawn / 1:04@2009-01-19 42
    Shawn

    @当空接龙: 你在我这里搜索一下,有介绍。

  43. rebuttonHajoio / 12:39@2009-01-23 43
    Hajoio

    思路和方法都很好啊~我把这个方法转到别的博客系统上面去了哦!

  44. rebuttonShawn / 13:05@2009-01-23 44
    Shawn

    @Hajoio: 好的,同时推荐你看一下这篇,做了改进。

  45. rebutton怒风 / 17:45@2009-01-23 45
    怒风

    我用了ff的noscript插件......

  46. rebuttonShawn / 17:51@2009-01-23 46
    Shawn

    @怒风: noscript 是保护安全的好方法,我用过一段时间,只是后来发现带来的麻烦远大过"安全",所以还是算了。

  47. rebutton怒风 / 19:36@2009-01-23 47
    怒风

    的确很麻烦 不过我觉得还是有必要用这个插件 反正我经常浏览的网站已经设置允许了 一些广告子域名的js就设置屏蔽 呵呵

  48. rebutton / 15:54@2010-02-25 48
    成

    有特色的主题啊。 :neutral:

  49. rebutton皓辰 / 10:09@2010-03-13 49
    皓辰

    虽然我不是很明白,但是还是顶一个

  50. rebutton阿普雷 / 23:24@2010-06-08 50
    阿普雷

    呵呵,百度现在支持nofollow啦

Leave Comments Here...

必填

必填&保密

随您

支持Ctrl+Enter快捷提交

  • 已部署"白忙活" Anti-Spam 系统,猪肉 Spammer 请注意查看源代码链接处。
  • 本站不会泄露您的邮件地址,敬请放心。
  • 支持常用 HTML 代码调用,插入 PHP 代码需注意:< = &lt;> = &gt;
  • 仅当某人针对您的评论做出回应时,您才会收到由本站发出的通知信件。
  • 如您希望以相同方式通知某位网友,请点击 Reply 按钮,或自行输入 @对方名字:
  • 鼠标移至评论列表中的 @someone: 区域即可自动显示 someone 的评论内容。
2 Trackbacks/Pingbacks

Shawn Blog

Shawn的个人博客(Blog),分享Wordpress技巧和Firefox浏览器心得,关注Web 2.0应用发展,记录对虚拟主机的使用评价。