月度归档:2009年03月

UCH SNS SEO反作弊

  最近发现 SEO 推广作弊者越来越猖獗,已经大规模的使用自动或半自动作弊器进入 SNS 作弊领域。以前在论坛上推广,有可能会被版主干掉,在博客推广可能被博主删除,然而在 SNS 上推广,他们还给你来一套一套的,先伪装成你的注册新用户,然后还更新个人资料,最后发篇满是堆积关键词的日志。

  开始在“陆丰同乡会(http://www.lfu.cn)”的 SNS 网站上发现了这种推广手段,连这么一个小小的县级市地方网站,都被作弊者植入各种垃圾推广信息,可想而知那些知名的 SNS 网站,都很逃过这些作弊者的魔掌。

  分析了一下他们的特征后发现,这种推广手段是专门针对 UCH(UCenter Home)这种 SNS 程序而研制的,流程应该是在搜索引擎上搜索带有 UCenter Home 或链接有关的网站,并把这些由 UCH 构建的 SNS 的 URL 收集起来,此举有点类似群发垃圾邮件的推广者们那样,在搜索引擎上收集电子邮件地址,只不过他们收集的是 SNS 网址。

  知道了这些推广手段是利用 SNS 来作弊 SEO 的目的后,就可以对症下药了,因为他们推广的网址还有些变态,推广的链接不是纯纯的某个网站,而是绕来绕去在一些 SNS 网站里面的某篇日志里。我采取的方法是,把他们推广的链接全部找出来,建立一份黑名单,凡是在黑名单里的网址,我全给替换成指定的网址,这样他们再费力,也是白搭。

  嗯,找链接也挺麻烦是吧,当然得通过脚本程序来实现了,我个人习惯使用 Perl 脚本语言,所以使用 HTML::TokeParser 模组来帮我解决了找链接的问题,并且把找出来的链接放到数据库里,再用 PHP 脚本语言写一段替换作弊链接的代码,通过 include_once 包含进 space_blog.php 里面。

附1:antispam.sql – SNS SEO 反作弊黑名单数据库表结构:

CREATE TABLE antispam (
  id int(11) NOT NULL auto_increment,
  pattern varchar(255) NOT NULL,
  replacement varchar(255) default NULL,
  type enum(‘black’,’white’) default NULL,
  created datetime default NULL,
  PRIMARY KEY  (id),
  UNIQUE KEY pattern (pattern)
);

附2:antispam.php – SNS SEO 替换作弊链接代码:

<?
$query = $_SGLOBAL[‘db’]->query(“select pattern,replacement from antispam where type=’black'”);
while($spam = $_SGLOBAL[‘db’]->fetch_array($query)){
 $search = preg_quote($spam[‘pattern’],’/’);
 $replace = ($spam[‘replacement’]) ? $spam[‘replacement’] : ‘#$1#’;
 $blog[‘message’] = preg_replace(“/($search)/”,$replace,$blog[‘message’]);
}
?>