CSK.Blog--个人原创Weblog

« 2007的第一个作品,一个crack写了个Tiger语言的IDE »

Blog防止spam信息技巧

自从把我blog迁至专用服务器上,访问率不断提升,但同时增加的是烦人的垃圾广告,常称为spam信息。

就blog而言,这类信息主要通过2种途径传播

1.留言、评论信息

2.引用信息

其中,第一种是最直观的spam传播方式,也是比较常见的,至于第二种,利用文章的trackback来做spam,这不禁令我赞叹人类智慧的伟大!

和垃圾邮件一样,目前自然语言处理还没达到一定的高度,自然没有什么很有效的办法杜绝这类信息。不过作为一个站长,看着这些恶心的东西贴在自己网站上实在是受不了。

为此我最早采取的方式是关键字过滤,但防不胜防...最后发展出下面2招,供各位参考:

对付评论:

思想:由于一般spam是推销产品、网站为目的,其中自然少不了链接与网址,不过链接标签不是必要的,但网址(严格说是URL)一般是必须的。所以突破口就在其中。

方案:对于留言作关键字过滤,将"http://"作为关键词,如果发现有这个关键词,则禁止发送留言。这样基本上就不会有第一类spam干扰你了。

对付引用:

要知道,既然是trackback,那么url是必须的,而且自动会加上链接...这也是那些spamer的狡诈之处,上面的办法自然是无效了

不过也有解决之道(不讨论关闭trackback的方案):

1.只有本blog注册用户才能获取trackback地址

好处:可以比较有效杜绝此类spam,缺点:并不是人人都愿意为了做个处于良心(至少国人不大愿意作trackback的,可能我有些偏见)的trackback特地来你这注册

2.动态生成trackback地址

我之前在网上看过具体例子,大家可以找下,那人提供方法的。

实现起来比较复杂,为了做到每次产生的地址不同,要做很复杂的后台跟踪,而且网上有人实现的方案是一个trackback地址在24小时后自动失效...

这招绝对很有效,不过我实在没这个功夫..

3.作trackback地址变换

此话怎讲?下面我来分析下spam的特点:

不要以为那些发送spam的人有很好的耐心给你blog每篇文章手工去发那些trackpost。他们一般都使用外面流行的spam群发工具。

我没有具体研究过,如果要我编写,一般会遵循这个原则:

一般trackback地址的格式为http://xxxblog.xx.com/trackback.asp?id=xxx&....

是不是这样?在那个trackback.asp后面跟的querystring里面一般总会含有id这类的信息的,这是必须的,因为blog要知道是对哪篇文章作了trackback。

好,现在我们要做群发软件,所谓群发,就是一次性给一个blog发很多有效的spam,这自然不可能要发送者去提供每个页面的trackback地址了,往往软件会找出每篇trackback地址的规律:

太简单不过了,因为一般id就是一个数字,而且文章id都是连续的,那么直接循环发送就好了,比如:

for (int id=0;id<maxid;id++)

{

CString url;

url.Format("http://xxxblog.xx.com/trackback.asp?id=%d",id);

sendspam(url);

}

所以我们的突破口就是在把这个id值变成不能用上述代码枚举的形式

这里介绍我目前采用的办法:把每个数字用对应的罗马字表示:

1->I ,2 -> II , 6 -> VI 等

这样,诸如id=53的形式可以变换到:id=V,III

现在我们考虑上面算法,虽然要写一个枚举这样id的程序实在很容易,但spam群发器的作者不会就为了这个情况特地去写这个算法吧。

而且对自己来说实现起来也很容易。

还有可以把数字用大写中文表示,或者英文,哈哈,就看各位想象了!

这个办法虽然不能绝对防止spam发作,但要知道在这个浮躁的社会,那些spamer们自然不会有工夫去研究你的算法的...

  • quote 1.TonyHuang
  • http://wztonyhuang.spaces.live.com
  • 对于评论和trackback的spam,我觉得用验证码就ok了,现在没有什么spam群发软件可以自动识别验证码的吧?

    对于评论和trackback还有一种比较方便的屏蔽spam的方法就是利用UrlRewrite

    将具体的blog利用手工给定的unixname和urlrewrite实现访问地址的变更:
    比如原来使用的是
    http: www.csksoft.net/blog/post/178.html来访问这篇文章
    利用urlrewrite,可以变成
    http: www.csksoft.net/blog/entities/教程/blog_anti_spam

    而trackback可以变成
    http: www.csksoft.net/blog/trackbacks/教程/blog_anti_spam

    不知道你觉得怎么样?
  • 1/7/2007 10:29:06 PM 回复该留言
  • quote 2.csk
  • 对于验证码..我也不知为何无效。至少我blog加了,后来还是一堆垃圾评论
    而且对于引用无法使用。

    UrlRewrite是可以,但这个其实和地址变换一样
  • 1/8/2007 10:04:32 AM 回复该留言
  • quote 5.TonyHuang
  • "貌似他们雇人手动spam的 "

    这个……

    中国失业率高啊……
  • 1/9/2007 5:21:50 PM 回复该留言
  • quote 6.NaziCP
  • http://www.devilhand.org

  • 对于评论和trackback的spam,我觉得用验证码就ok了,现在没有什么spam群发软件可以自动识别验证码的吧?


    搞笑了哈,SPAM群发软件的源代码你看过没有?不是没有什么SPAM群发软件可以自动识别验证码,是几乎所有的SPAM群发软件都能识别觉大部分验证码.
    有种东西叫做图形分形算法,只要是你通过图形算法生成的图象(验证码就是),里头就包含这个信息,自然他识别出来就不是难事.
  • 2/6/2007 12:21:56 PM 回复该留言
  • quote 7.z
  • 呵呵,这叫出名了,麻烦也多啊.很实用.不怎么懂,先保存.也许以后用的着
  • 10/5/2007 3:34:01 PM 回复该留言

发表评论:

注意:为了有效防止SPAM,任何含有http://字样的消息会被阻止发布同时,本站仅供技术交流,请不要讨论任何政治敏感话题或者低级趣味问题。

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Copyright Shikai Chen 2000-2012. Powered By Z-Blog(CSK Modified)