`
ihuashao
  • 浏览: 4720867 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

BSP防范Trackback垃圾的一种方法

阅读更多

Trackback是个好东西,不过由于缺少对发送方的确认机制,一直备受垃圾的困扰。比如,CSDN和Donews都深受其害。甚至很多人整天都在讨论Trackback是该死还是不该死

这样的讨论徒劳无益,技术方面,虽然已经有若干人作过尝试(1234),不过大部分都未必简单可行。本文试图介绍一个简单可行的方法,并讲述如何在CSDN Blog系统中清除这些垃圾。

解决思路

Trackback垃圾产生的重要原因是大量站长在流量利益的驱使下的“变态”行为,其中也包括大量国外的劣质SEO。我们只有从对这些行为分析的基础上来解决Trackback垃圾问题。

我们知道,Trackback垃圾发送者有2个目的:一是希望用户通过连接访问他们的网站(比如一些美女站),二是希望搜索引擎加强他们网站的排名和收录。因此,他们通常都有Trackback回溯地址。我们通过这些地址的分析可以找出一些有价值的规律。然后基于这个规律上去清理Trackback垃圾。

收集Trackback信息

CSDN Blog的Trackback保存在一个名叫blog_feedback的数据表中,我们先尝试对Trackback回溯地址(数据库字段DisplayUrl)进行提取主域名的分析。做法可以直接在这个表上新建一个DisplayUrlRoot字段进行保存。

update blog_feedback set DisplayUrlRoot=dbo.getUrlRoot(DisplayUrl) where feedbacktype=2

其中getUrlRoot是一个用户自定义函数,获取回溯地址的主域名

CREATE FUNCTION [dbo].[getUrlRoot]
(@sURL nvarchar(256))
RETURNS nvarchar(256)
AS
BEGIN
declare @m_f int
declare @m_len int
declare @ret nvarchar(256)
set @ret=''

select @m_f = PATINDEX('%//%', @sURL)
if (@m_f = 6) -- Is HTTP URL Format
begin
select @m_len = LEN(@sURL)
select @m_f = PATINDEX('%/%', SUBSTRING(@sURL, 8, @m_len-7))
if (@m_f != 0)
begin
select @ret = SUBSTRING(@sURL, 8, @m_f-1)
end
else --没有发现'/'
begin
select @ret = SUBSTRING(@sURL, 8, @m_len-7)
end
select @m_f = PATINDEX('%.%', @ret)
select @ret = SUBSTRING(@ret, @m_f+1, LEN(@ret)-@m_f)
end
return @ret
END

这样我们对每个Trackback就获取了一个回溯地址的主域名,下面的分析基于这个新字段进行统计分析。所以之前应该为这个字段加上一个索引。

统计Trackback信息

在SQL查询分析器中执行下面语句

select DisplayUrlRoot, count(ID) from blog_feedback where DisplayUrlRoot is not null
group by DisplayUrlRoot having(count(ID))>50 order by count(ID) desc

我们可以看到所有Trackback回溯地址的主域名有50个以上的域名列表,在CSDN Blog的排名前5个是

域名:alice.it 条目数:39337
域名:blogspot.com 条目数:14447
域名:editme.com 条目数:8439
域名:aol.com 条目数:7043
域名:psl.lt 条目数:6907

经过检查,这里全是Trackback垃圾。

Trackback清理方法

在CSDN Blog,条目数大于50的Trackback回溯地址的主域名有367个,大量国外不知名的域名我们不需要检查,只需要重点筛选一些知名和相关网站即可。我们发现,对于CSDN Blog的Trackback而言,只有来自以下3个域名的Trackback是全部“干净的”:csdn.net、cnblogs.com、donews.net,另外,msn.com有一半左右是“干净的”。

现在我们开始清理了,执行下面这条语句:

delete blog_feedback where DisplayUrlRoot in
(select DisplayUrlRoot from blog_feedback where DisplayUrlRoot is not null and
DisplayUrlRoot not in ('csdn.net', 'donews.net', 'cnblogs.com', 'msn.com')
group by DisplayUrlRoot having(count(ID))>50)

执行后,近24万多条Trackback垃圾马上消失。仅留下了16394条有用的信息。

那些知名网站Trackback垃圾多?

以下纯粹是CSDN Blog统计分析的结果,仅说明某些人借助一些知名网站进行垃圾传播:

域名:blogspot.com 条目数:14447
域名:aol.com 条目数:7043
域名:blog.hexun.com 条目数:6621
域名:blog.ccidnet.com 条目数:4980
域名:netscape.com 条目数:1378
域名:baidu.com 条目数:804
域名:a8.com 条目数:704
域名:blog.sohu.com 条目数:344
域名:china.alibaba.com 条目数:243

结语

本文基于对Trackback回溯地址主域名的统计分析的基础上给出了一种大批量消除Trackback垃圾的方法,并在CSDN Blog消除效果良好。值得大型BSP借鉴。

Update:
前面提到,msn.com有一半左右是“干净的”,如何清理呢?我也发现,99.9%的正常从msn.com过来的Trackback没有标题,而垃圾Trackback是全部有标题,这是一个有用的线索。执行:

delete blog_feedback where DisplayUrlRoot = 'msn.com' and title<>'' and ID not in (有限的几个有用的ID)

可以清理这些垃圾。执行完后,CSDN Blog正常Trackback下降到15411个。

分享到:
评论

相关推荐

    AAC Trackback Submitter 6

    **Trackback** 是一种Web服务协议,允许网站之间相互通知彼此已链接的情况。当你在自己的博客或网站上提及另一个网站的内容时,通过Trackback功能,你可以向那个网站发送一个通知,这样对方就能知道他们的内容被引用...

    WordPress wp-trackback.php漏洞分析

    本文对WordPress wp-trackback.php漏洞作了分析。

    TrackBack user guide

    **TrackBack**是一款个人变更管理工具,旨在为用户提供一种自动备份重要文件及目录的方法。它位于应用特定的“自动保存”功能与昂贵的企业级变更管理软件之间,填补了二者之间的空白。通过TrackBack,个人用户能够...

    PHP Trackback-开源

    Trackback 是一种网络服务,允许网站之间进行双向通信,以通告新内容的存在。它提供了一种方式,让一个网站能够通知另一个网站自己的内容已链接到该网站上的某个页面。PHP Trackback 是用 PHP 编写的实现 Trackback ...

    用于 WordPress 的7个反垃圾工具 管理资料.doc

    Defensio提供了一种高级的垃圾信息过滤机制,它不仅可以应用于WordPress,还能用于其他平台。它使用机器学习算法来区分有益和有害的评论,并支持公开ID。此外,Defensio还允许用户为他们的博客评论创建RSS订阅,使...

    Trackback for DSpace-开源

    Trackback是一种Web服务协议,它允许网站之间建立链接和通信,使得用户可以在自己的博客或其他网站上发布对其他网站内容的引用或评论。在这里,这个项目是针对DSpace进行的扩展,DSpace是一个广泛使用的开源软件,...

    修改PHP脚本使WordPress拦截垃圾评论的方法示例

    由于绝大多数的垃圾评论都是英文的,所以国内不少朋友在使用 Some Chinese Please 插件,它可以有效地拦截内容中不带有中文字的comment和trackback(pingback),不写入数据库中,可有效地减小spam对blog服务器的无谓...

    矩阵连乘java代码

    在这个Java代码中,我们可以看到,作者定义了一个名为`Juzhen`的类,其中包含了两个静态方法:`Matrix`和`TrackBack`。 Matrix方法 `Matrix`方法的作用是计算矩阵连乘的最优顺序。该方法接受三个参数:`p`、`n`和`...

    BlogEngine

    Trackback是另一种类似的技术,它也需要源站点手动输入目标站点的trackback URL来发送通知。与pingback相比,trackback更依赖于目标站点提供特定的trackback接口。在BlogEngine.NET中,启用trackback功能后,博主...

    Python 异常机制 08_trackback模块的使用_异常写入日志文件.mp4

    Python 异常机制 08_trackback模块的使用_异常写入日志文件.mp4

    wordpress安装及后台详细操作教程[整理].pdf

    1. Trackback 和 Pingback:Trackback 是一种网络日志应用工具,它可以让网志作者在文章中引用其他网志的文章,而 Pingback 则是 WordPress 自带的 Trackback 实现 2. 文章发布:发布文章、分类、归档、RSS 聚合 3. ...

    tsy.rar_Tsys

    2. **trackback.asp**:Trackback是一种博客之间交流的方式,允许一个博客条目向其他博客条目发送通知,表示它已经链接到那个条目。在trackback.asp中,可能包含了处理Trackback请求、验证来源站点、记录Trackback...

    wordpress.zip

    1. **wp-trackback.php**:这是一个处理Trackback功能的文件,Trackback是一种允许网站之间互相通知对方已引用其内容的机制。当其他站点链接到你的WordPress文章时,你可以通过Trackback查看和管理这些引用。 2. **...

    asp网站完整源代码1

    9. **trackback.asp**:Trackback是一种Web服务协议,用于一个博客通知另一个博客,某篇文章已经链接到了它。在这个系统中,trackback.asp可能会处理来自其他网站的Trackback请求,并在本地博客上展示相关信息。 10...

    BBOG.rar_其他行业

    `trackback.php` 实现了Trackback功能,一种允许博客之间互相通知新帖子的方法。当一篇博客文章链接到另一篇博客时,被链接的博客可以通过Trackback收到通知,显示引用它的文章。 `categories.php` 用于处理博客...

    wordpress英文版(博客建站) v5.7.1.0 最新版

    WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站,也可以把WordPress当作一个内容管理系统(CMS)来使用。 功能特色 1.在某些插件的支持下实现静态html...

    全国自考(电子商务概论)真题及答案解析(一).docx

    - **解析:** 商业方法系统是一种创新的商业模式或方法,可以被授予专利权。因此,选项D“商业方法系统”是正确答案。 #### 二十五、数字鸿沟 - **知识点:** 数字鸿沟是指信息技术接入方面的差距。 - **解析:** ...

    BLOG,SEBLOG博客源码

    6. **trackback.php**:Trackback 是一种博客之间的互动功能,允许一篇博客文章链接到其他博客后,发送通知,让原文作者知道有新的引用。 7. **rss.php**:RSS(Really Simple Syndication)是博客内容订阅的一种...

    PHP实现博客程序源码

    `trackback.php`可能实现了Trackback功能,允许用户从自己的博客向其他支持Trackback的博客发送链接通知,创建一种双向链接。 `rss.php`是RSS(Really Simple Syndication) feed的生成器,使得用户可以通过RSS订阅...

    web2.0的特点

    Trackback则是博客之间相互链接和交流的一种机制,当一篇博客引用了其他博客的内容,会通过Trackback通知原作者。Tag,即标签,是组织和分类内容的一种灵活方式,它打破了传统的层级分类,促进了相关内容的关联。 ...

Global site tag (gtag.js) - Google Analytics