新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     >>W3CHINA.ORG讨论区<<     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 讨论HTML、XHTML、Web2.0、Ajax、XUL, ExtJS, jQuery, JSON、Social Networking System(SNS)、Rich Internet Applications (RIA)、Tagging System、Taxonomy(tagsonomy,folkonomy)、XForms、XFrames、XInclude, XBL (XML Binding Language)等话题
    [返回] W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWLXML.ORG.CN讨论区 - XML技术『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』 → [IBM DeveloperWorks] 真正的 Web 2.0: 会战 Web 垃圾信息,第 1 部分 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 17700 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [IBM DeveloperWorks] 真正的 Web 2.0: 会战 Web 垃圾信息,第 1 部分 举报  打印  推荐  IE收藏夹 
       本主题类别: RDF/RDFS    
     supremeweb 帅哥哟,离线,有人找我吗?
      
      
      等级:大三(要不要学学XML呢?)
      文章:87
      积分:661
      门派:XML.ORG.CN
      注册:2006/6/13

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给supremeweb发送一个短消息 把supremeweb加入好友 查看supremeweb的个人资料 搜索supremeweb在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 引用回复这个贴子 回复这个贴子 查看supremeweb的博客楼主
    发贴心情 [IBM DeveloperWorks] 真正的 Web 2.0: 会战 Web 垃圾信息,第 1 部分

    通过评估访问者行为和控制工作流来减少垃圾信息

    级别: 中级

    Uche Ogbuji, 合伙人, Zepheira, LLC


    2009 年 1 月 19 日

    Web 上的垃圾信息已经成为了现代 Web 开发人员最大的威胁。在如何搞破坏以及如何在所有能获得的 Web 2.0 页面上传播广告方面,这些 “坏家伙” 也变得越来越复杂。更麻烦的是,垃圾信息还常被用来散布恶意软件。与垃圾信息的较量已经开始,Web 开发人员必须及时掌握一些可用的基础工具来对付 Web 站点上的垃圾信息。本系列文章由两部分组成,提供了有关反垃圾信息技术的详细指南。本文是其中的第一篇文章,介绍了如何评测一个访问者是否是垃圾信息散布者以及如何组织站点工作流来阻止垃圾信息。
    在 1994 年,National Science Foundation 解除了对在 Internet 上进行商业宣讲的禁令。在当时,电子邮件和 Usenet 是主要的交流平台,而诸如 Gopher 这样简单的发布系统则试图建立更广泛的用户群。Web 尚未出现。那年,一个名为 Canter & Siegel 的律师事务所在 Usenet 上发布了第一个面向大众的商业广告垃圾信息,它雇了一名 Perl 程序员来为其 “绿卡彩票” 服务生成广告,这些广告随后被爆炸式地扩散到了 6,000 多个新闻组。他们成了名,但同时也招来非议。他们随即开始为他人提供类似的垃圾信息,宣扬垃圾信息的好处并撰写了 “互联网市场营销” 方面的书。从那之后,几乎没有一个在线论坛幸免于不受欢迎的商业广告。随着 Web 逐渐成为人们进行在线谈论的重要途径,在 Web 2.0 技术为人们能在 Web 畅所欲言逐渐敞开方便之门的时候,垃圾信息问题也复仇般地滋长起来了。

    有些时候,Web 垃圾信息的害处无关痛痒,但更多时候,它都是十分有害的。垃圾信息散布者通常都不会满足于只发布一两个消息,而是会向论坛狂发消息,直至垃圾消息淹没了本来的主题。有时,垃圾信息包含色情或反社会的消息,会带来更大的负面影响。大多数搜索引擎都会将带有这类消息或提供与这类垃圾信息相关的站点链接的页面减值,这就意味着垃圾信息能减少搜索引擎的优化处理。最终的后果往往是 Web 发布者往往要在反垃圾信息方面浪费大量资源,并会占用处理其他任务的时间。

    Web 垃圾信息有多种格式,包括:

    wikis 上的垃圾文章和破坏性文章
    Weblog 上评论性质的垃圾信息
    论坛、问题跟踪器和其他讨论论坛内的垃圾帖子
    引荐垃圾信息(垃圾信息站点假装将用户引荐到列有引用信息的目标站点)
    社会网络上的虚假用户条目
    处理 Web 垃圾信息非常困难,但是 Web 开发人员如果忽视垃圾信息的预防,结果受伤害的还是开发人员自己。在本文以及后续的第 2 部分,我将展示对付各种 Web 垃圾信息的技巧、技术和服务。

    垃圾信息散发者的行为

    人们进行的正常网络行为在时间和内容方面常常具有不规则性。而垃圾信息通常都是由程序创建的,比如 Canter & Siegel 就是利用 Perl 脚本向 6,000 多个 Usenet 组发帖的。因此,有时候,可以使用这些程序的机制来对付垃圾信息散布者。比方说,在需要注册的情况下,可以使用各种警告标志来标记一个帐户以进行进一步的检查。比如,如果该帐户来自顶层的域,比如 .ru、.br、.biz,那么它就与垃圾信息散布者联系很紧密。如果一个帐户被标记了,可能就需要将该帐户发的一些帖子暂时延后,待检查了所发的内容之后再放行。

    防洪控制

    Wiki、Weblog 和论坛垃圾信息散布者通常都会在几秒内发送数十个请求,据此,可以限制某个用户或 IP 地址在某个时间间隔内所能发送的请求数。这种技巧也被称为防洪控制。同时,还要确保以这种方式进行的请求控制是跨整个站点,而不是单单一个页面的。

    这些行为评估技巧还可以应用于本文下一节中来防止 Web 上除垃圾信息之外的其他滥用。比如,假设您托管了一个 Webmail 服务,垃圾信息散布者可能会试图大量创建帐户,然后利用这些帐户发送垃圾信息,再比如,假如您托管了一个在线竞拍站点,有人可能就会编写程序来操纵整个竞拍过程。总之,只要有注册新用户的系统存在,有些用户就会试图通过自动注册达到别有用心的目的。总的来说,这些技术可帮助 Web 开发人员确保使用其服务者均是正当用户。

    工作流控制

    很多垃圾信息都来自机器人程序,在使用站点方面,它们往往具有某些独特的特点,因此您可以利用这些特点。图 1 总结了在提交消息或评论以便将其添加到站点时典型的人、机工作流。


    图 1. 典型的人、机工作流
    按此在新窗口浏览图片

    机器人工作流一般径直进入 POST 请求,因此通过检测典型的机器人工作流可以禁止大量的垃圾信息。

    表单变换

    您可能要问了,主表单是否由请求者加载。一种检查方式是以可视或非可视(对用户而言)的方式变换表单的某些方面。通常非可视的方式是变换表单字段的名称。比如,您可能会通过字段名 content_081010_68_45_76_45(使用了日期、用户 IP 以及其他基于基本名称的类似修改)向一个用户发送具有主要内容的文本区域。最好不要允许一个变换字段名被重用。也可以进行可视变换,比如在其他模式表明所使用的这个 IP 是可疑的时候,要求某些用户在发布消息时选择一个复选框。

    nonce 测试

    一个 nonce 就是针对包含表单的某个页面视图而生成的一个难以猜出的值。之后,再在表单提交中要求该 nonce 作为其中的一个字段。如果机器人程序径直去 POSTing 这个表单提交,它将不会完成此 HTML 页面的加载,因此也就不会知道此 nonce 所预期的值。有很多方式可以对 nonce 测试进行细节调优。无论在何种情况下,都要确保 nonce 不能被重用,否则垃圾信息散布者就会很容易破解它。最好是使用 IP 地址和页面请求发生时的日期或完整时间以便生成和验证此 nonce。

    检测 JavaScript

    有些机器人程序会试图通过加载页面并阅读 nonce 来破解 nonce 测试。有了所需信息后,粗心的垃圾信息散布者常常会让机器人程序立即就发送 POST。因此,可以标记那些在表单加载后立即发生的提交,这可以通过使用这样一个时间间隔实现,在这个时间间隔内普通人是根本无法如此快速地完成表单输入的。这与防洪控制测试也是相关的。即便机器人程序再小心,它们通常都不会在表单页面上运行任何 JavaScript。您可以以多种方式利用这一点。首先,最好不要在此表单页面的实际内容内生成这个 nonce,而是可以通过来自表单页面的一个次要的 JavaScript 请求来生成。可以设置用户首次向主要的内容字段输入数据时的事件处理程序,如图 2 所示。


    图 2. 使用 JavaScript 改进 nonce 测试
    按此在新窗口浏览图片

    这里的主要问题是有些用户可能会禁用 JavaScript,并且实际上有些公司规定也是这么要求的,所以应该为用户提供备用的途径来进行身份验证,比如只对不调用 JavaScript 的用户使用表单验证。但是某些垃圾信息散布者会使用浏览器引擎内的脚本启动攻击,所以他们的确会调用 JavaScript。因此,可以使用 JavaScript 测试作为检测垃圾信息的一种衡量因素,而不是绝对的判断依据。


      

    测试 H.Q.(human quotient)

    对付 Web 垃圾信息的一种很常用的方式是 nonce 测试的一种改良。做法是在 post 表单包含某种可视测试,这种测试对人而言很容易,对机器人程序而言则很复杂。最常见的一种方法是 CAPTCHA。在这种测试内,您给出的是一个代表某种数字符号的图像,用户必须读懂并在表单字段内输入这些符号。垃圾信息散布者常常会使用视觉字符识别来破解 CAPTCHA,所以通常我们需要严重歪曲这些图像。图 3 是 CAPTCHA 图像的一个例子。


    图 3. CAPTCHA 图像要求用户回答 “smwm”
    按此在新窗口浏览图片

    虽然在本例中图像有所歪曲,垃圾信息散布者仍然能破解 CAPTCHA,所以需要更高程度的歪曲,如图 4 所示。


    图 4. CAPTCHA 图像要求用户回答 “following finding”
    按此在新窗口浏览图片

    这里的问题有几个。其一是,为了战胜垃圾信息散布者,CAPTCHA 需要很高程度的歪曲,这样一来,人也很难看懂。有些人,比如视觉障碍人士,根本就看不到 CAPTCHA 图像,所以这个技巧的适用性比较差,在某些情况下甚至是不合法的。如果忽略这些困难不谈,CAPTCHA 已经成为了时下最流行的垃圾信息防治工具之一。

    文本确认

    一种类似的、同时又不会影响访问性的技术是向用户提出一个随机的文本问题。如果站点针对的是一个特定的领域,所提的问题可能会需要回答者具有对该领域的一些基础知识。比如,在一个医疗信息和服务站点,您可能会提出这样的问题,“人体内与呼吸相关的主要器官是什么?”,预期的答案自然是“肺”。对于这种方式,至关重要的一点是提出的问题要多样,并且要格外注意措辞以便让人能回答出来,而机器人程序则基本猜不到。


      

    结束语

    您可以对本文中所谈论的这些技巧和技术进行改进,比如,您可以强迫用户预览他们要发的信息。通过添加这一额外的工作流阶段,可以捉获一些垃圾信息散布者,并且如果您足够用心,比如用 JavaScript 为一些用户自动化预览,那么即便是有些不方便之处也不会阻碍用户参与的积极性。应该根据工作流适当应用 CAPTCHA、表单变换、nonce 等,并且采用的手段应使大多数合法用户觉察不到,但却让垃圾信息散布者束手无策。

    评估行为和管理工作流虽能减少垃圾信息,却不能消除它们。例如,一些垃圾信息散布者会雇一些人来专门破解本文中所讨论的这些技巧(有时又称其为 “机械土耳其人” 攻击)。他们常常在人力成本低的地方雇人,让这些人专门到目标站点手工留下垃圾信息。要解决机械土耳其人的问题和对付复杂的垃圾信息机器人程序,需要借助由与您一样憎恨垃圾信息的人所组成的社区的力量。我将在本系列下一期文章中介绍如何能做到这一点。


    参考资料

    学习

    您可以参阅本文在 developerWorks 全球网站上的 [URL=http://www.ibm.com/developerworks/web/library/wa-realweb10/]英文原文[/URL]。


    如果您觉着您能忍受,可以阅读有关垃圾信息散布者的先驱 [URL=http://en.wikipedia.org/wiki/Canter_%26_Siegel]Canter & Siegel[/URL] 的故事,并在这篇 [URL=http://en.wikipedia.org/wiki/Spam_%28electronic%29]Spam[/URL] 文章内寻找更多背景信息。


    [URL=http://en.wikipedia.org/wiki/CAPTCHA]Wikipedia 上有关 CAPTCHA 的文章[/URL] 讨论了它的历史、变化和实现。


    通过 Wikipedia 上有关 [URL=http://en.wikipedia.org/wiki/Spam_in_blogs]Spam in blogs[/URL] 的文章获得有用信息集。


    很多 Weblog 或论坛软件的开发者都有有关对付垃圾信息的有用资源页,包括 [URL=http://www.sixapart.com/pronet/comment_spam]Six Apart(MovableType 的制作者)[/URL] 和 [URL=http://codex.wordpress.org/Combating_Comment_Spam]Wordpress[/URL]。


    通过 David Mertz 撰写的文章 “[URL=http://www.ibm.com/developerworks/cn/linux/l-hashcash.html]可爱的 Python:用 hashcash 打击垃圾信息[/URL]”,了解 hashcash 技术,该技术除了可以对付电子邮件系统中的垃圾信息之外,还可用来最少化 Wikis 上的垃圾信息。


    通过 developerWorks [URL=http://www.ibm.com/developerworks/cn/web/]Web 开发专区[/URL] 内有关 Web 技术的文章和教程(包括本专栏之前的各期文章)扩展您的站点开发技能。


    随时关注 [URL=http://www.ibm.com/developerworks/offers/techbriefings/?S_TACT=105AGX08&S_CMP=art]developerWorks 技术活动和网络广播[/URL]。


    关于作者
    按此在新窗口浏览图片
      Uche Ogbuji 是 [URL=http://zepheira.com/]Zepheira, LLC[/URL] 的合伙人,这家公司专门提供下一代 Web 技术解决方案。Ogbuji 先生是 [URL=http://4suite.org/]4Suite[/URL] 的首席开发人员,这是一种用于 XML、RDF 和知识管理应用程序的开放源代码平台;也是 Versa RDF 查询语言的首席开发人员。他是一位出生在尼日利亚的计算机工程师和技术作家,目前定居在科罗拉多的博尔德。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/2/11 14:09:00
     
     supremeweb 帅哥哟,离线,有人找我吗?
      
      
      等级:大三(要不要学学XML呢?)
      文章:87
      积分:661
      门派:XML.ORG.CN
      注册:2006/6/13

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给supremeweb发送一个短消息 把supremeweb加入好友 查看supremeweb的个人资料 搜索supremeweb在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 引用回复这个贴子 回复这个贴子 查看supremeweb的博客2
    发贴心情 真正的 Web 2.0: 会战 Web 垃圾信息,第 2 部分
    借助社区的力量对抗垃圾信息

    级别: 中级

    [URL=http://www.ibm.com/developerworks/cn/web/wa-realweb11/#author]Uche Ogbuji[/URL], 合伙人, Zepheira, LLC


    2009 年 2 月 02 日

    这个由两部分组成的系列文章提供了如何抵御垃圾信息的详细指导。本文是其中的第 2 部分,讨论了内容分析、回链(linkback)中存在的垃圾信息问题,以及如何通过黑名单和反垃圾信息服务与其他 Web 站点管理员共享抵御垃圾信息的经验和种种努力。
    对付 Web 上的垃圾信息,科学的技术和技巧很重要。在本专栏 [URL=http://www.ibm.com/developerworks/cn/web/wa-realweb10/]前一期文章[/URL] 中,我介绍了如何使用工作流对付垃圾信息机器人程序,并且最好不会给正当使用的用户带来任何不便。在本篇文章中,我将讨论垃圾信息的其他方面的问题,比如内容网站间的关系以及垃圾信息受害者如何能够展开协作来对抗垃圾信息散布者。

    社区警察

    对付 Web 垃圾信息最有效的方式是通过社区行动。垃圾信息是一种大规模的攻击,所以迫切需要大规模的抵抗。如果社区能协助发现并揭露垃圾信息散布者的行为和内容模式,那么这些模式经过共享就能让机器人程序无法或不容易奏效。社区尤其适用于用前一期文章中介绍的方法仍无法对付的其他形式的垃圾信息。首先,我先花点时间介绍回链垃圾信息。

    Linkback 垃圾信息

    Weblog 以及其他 Web 文章的目的是为了共享见解和发现。有些时候,受某篇博客条目的启发,人们会直接在 Weblog 上留下评论。有时,人们则会将这篇博客条目引用到自己的条目或文章中,而 linkback 是一种技术术语,用于通知您与之建立链接的另一个站点。它是一种网络信号,就好象 “ping” 的作用,声明了一个条目和另一个条目之间的关系,有助于读者找到相关的内容。但是,linkback 也为垃圾信息散布者提供了滥用 Weblog 的可乘之机,这些散布者会发送所谓的 “sping”(即 “spam ping” 的缩写)。linkback 有三种常见类型,而且全部存在与垃圾信息相关的问题。

    Refback:当 Web 浏览器用户单击链接从一个页面转到另一个页面时,对第二个页面的请求包含一个 HTTP 头(它被称为 referrer)以及第一个页面的 URL。该过程也被称为 “refback”。第二个站点可能会跟踪 refback,可能会贴出 refback 的列表,甚至可能 会跟随 refback 到原始站点并提取诸如标题、元数据、链接文本以及其他围绕此链接的文本等信息。垃圾信息散布者利用这一点来在合法站点上嵌入其客户的链接以提升该客户的搜索引擎概要文件。他们通过在 referrer 字段内的客户链接来向目标站点发送请求。这被称为 “referrer 垃圾信息”。对付它的常用反击方法是 建立 refback 站点的黑名单。

    TrackBack:Refback 依赖于用户跟踪链接,但一些 Weblogger 则希望得到一种更为确定的方式来进行 linkback 通知,主要的 Weblog 软件提供商之一 Six Apart 做到了这点。TrackBack 是一种规范,包含 “发现”(告知在哪以及如何发送 ping)以及使用简单 HTTP 请求的一个 ping 过程。TrackBack 的告知和发现都是嵌入在页面评论部分的 Resource Description Framework (RDF) 信息。作者对一个条目的引用将会导致向被告知的端点发送一个 ping。TrackBack 已经在 Weblogger 中十分流行,垃圾信息散布者于是紧跟 Weblogger 而至。垃圾信息散布者将会在 Weblog 爬行以寻找 TrackBack 侦听程序并向其客户站点发送假的通知。TrackBack 垃圾信息的问题太大了以至于很多 Weblog 不得不禁用 TrackBack,就如同有些站点禁用了 Weblog 条目上的评论表单一样。TrackBack 垃圾信息的应对措施类似于本文稍后要介绍的内容分析以及抵御评论垃圾信息的黑名单对策。

    Pingback:Pingback 与 TrackBack 非常接近,只不过通知消息的格式是 XML-RPC 请求而不是简单的 HTTP 请求。发现机制也更为完善,使用的是 HTML 链接或 HTTP 头,而不是嵌入的 RDF。最后一点,Pingack 的接收者会跟随这个 ping 的过程回到原始站点以确保在该站点的确具有这样一个链接,而只这一步就能清除很多垃圾信息散布者。虽然可实现 TrackBack 来执行这样的检查,但它更多的则是 pingback 规范的一个重要部分。除了这项检查之外,Pingback 的反垃圾信息措施与 TrackBack 的基本相同。

    内容分析

    不管垃圾信息是来自机器人程序还是机械式的土耳其攻击,它均具有一个根本的弱点。垃圾信息散布者的主要目的就是提高其客户站点在搜索引擎的排名,这个过程被称为 “黑帽式搜索引擎优化(SEO)” 或 “垃圾索引”。除非垃圾信息散布者确实将链接带入,否则整个过程的意义不大,这意味着社区能够借助统计信息以及被报告的链接和链接模式共享垃圾信息客户链接的情报。与之稍有例外的情况是垃圾信息散布者确实在试图直接向该站点的访问者做广告以及对他人财产进行纯粹的蓄意破坏。这也是为何要通过多种手段和策略对付垃圾信息的原因之一。

    统计分析

    内容分析的基本思想有别于社区方式。它涉及到内容的自动检查,通过对文本的统计分析来判断它与任何之前已经被标记为垃圾信息的内容是否接近。最常见的统计方式称为贝叶斯推理,更详细的内容,可以参阅 IBM developerWorks 的另一篇文章(参见 [URL=http://www.ibm.com/developerworks/cn/web/wa-realweb11/#Resources]参考资料[/URL])。一旦有人将所帖出的内容标记为是垃圾信息或是好的内容(有时又称为 “ham”),统计表就会被更新。贝叶斯推理在对付电子邮件中的垃圾信息以及其他与垃圾信息不相关的领域(比如客户亲和力引擎,或商业推荐引擎)均有突出的表现。

    进入社区

    如能跨多个目标站点执行内容分析,那么它将更为有效。垃圾信息散布者通常都会处理大量这类网站并发出机器人程序来逐个进行垃圾信息侵犯。如果在某个站点上可以检测出垃圾帖子,它就能让其他站点也能辨别出该帖子,这类似于上面描述的垃圾信息 bot 登记电子邮件和 IP 地址的热门列表。在内容分析的情景下,有几个商业(以及半商业)服务可作为补充。

    Akismet 是知名的协作内容分析系统之一,它是一种商业服务,由一家与 WordPress Weblog 平台相关的公司提供。用户向服务提交评论并会收到一个标志表明它是否已经被标志为垃圾信息。Akismet 是该问题复杂性的生动体现。它是一种封闭服务,这意味着用户和观察者均不能看到垃圾信息的检测过程。这样做的原因是为了让垃圾信息散布者也无法知悉以使其不能攻击系统,但不好的一面是别人无法帮助改进该服务。更糟糕的是,如果合法的评论也被标记为垃圾信息,不免让人无法充分信任该服务。Akismet 也曾经因为错把人(包括那些批评过该公司或其创始人的人)放入黑名单而受到过谴责。其他的类似服务还包括 Mollom、Defensio 和 Project Honeypot Spam Domains List(PHSDL)。

    检查注册者和发送者的细节

    很多 Weblog 都允许一些人来发布评论,但像论坛这样的站点通常都需要在发帖前先进行注册。可以利用注册过程来阻挡垃圾信息散布者。机器人程序通常会跨目标站点重用注册要求的电子邮件地址。即使是能自动生成地址的机器人程序也会在所生成的地址的模式方面留下蛛丝马迹。帮助管理员捕获垃圾信息散布者注册的站点和服务包括 “Stop Forum Spam” 和 “phpBB Anti Spam Project”(参见 [URL=http://www.ibm.com/developerworks/cn/web/wa-realweb11/#Resources]参考资料[/URL])。


      

    靠近源头

    在应对 Web 垃圾信息的这场伟大的战役中,较量的焦点波及可写内容空间的每个方面。到目前为止,本文所讨论的方法大都集中于垃圾信息散布者攻击的最明显的对象 — 目标站点。垃圾信息散布者的行为模式有很多,所以如今的一些反垃圾信息技术都在试图利用这些模式。

    Honeypot

    大多数 Web 垃圾信息散布者都会在其活动中使用开放的 HTTP 代理中继(正如很多电子邮件垃圾信息散布者使用开放的 SMTP 中继一样)。在这种方式下,他们就能掩盖其真正的 IP 地址并由此避开黑名单等的检测。有些黑名单实际上会针对所有开放的 HTTP 中继,其基于的原因是如果它们能找到这些中继,垃圾信息散布者也能够。另一种常被社区采用的方式是部署 “honeypot”。一个 honeypot 伪装成一个假的开放 HTTP 代理中继,但是当垃圾信息散布者使用它时,该活动就被记录下来并被用来更新黑名单。此外,honeypot 操作者还会努力辨别垃圾信息散布者不断变化的行为模式。

    阻塞所有代理

    除了使用 HTTP 代理黑名单之外,还可以选择自动阻塞所有被代理的请求。HTTP 代理会更新某些报头,您可以检查这些报头。清单 1 是实现此目的的一种 Apache 配置方案(参见 [URL=http://www.ibm.com/developerworks/cn/web/wa-realweb11/#Resources]参考资料[/URL])。


    清单 1. 阻塞代理服务器的 Apache 配置方案
          
    # Apache config recipe for blocking proxy servers
    # http://perishablepress.com/press/2008/04/20/how-to-block-proxy-servers-via-htaccess/
    RewriteEngine on
    RewriteCond %{HTTP:VIA}                 !^$ [OR]
    RewriteCond %{HTTP:FORWARDED}           !^$ [OR]
    RewriteCond %{HTTP:USERAGENT_VIA}       !^$ [OR]
    RewriteCond %{HTTP:X_FORWARDED_FOR}     !^$ [OR]
    RewriteCond %{HTTP:PROXY_CONNECTION}    !^$ [OR]
    RewriteCond %{HTTP:XPROXY_CONNECTION}   !^$ [OR]
    RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
    RewriteCond %{HTTP:HTTP_CLIENT_IP}      !^$
    RewriteRule ^(.*)$ - [F]



      

    基于成本的垃圾信息防御的社区努力

    如果从发送到发布没有任何成本的话,很难想象垃圾信息问题将会多么严重。拿我自己的书信邮件来说,其中有 40% 都是垃圾信息。而电子邮件更为严重,其中的 90% 或更多都是垃圾信息。减少电子垃圾(包括电子邮件和 Web 上的垃圾信息)的一种方式是给发送邮件或在 Web 站点发布信息的行为加上一些成本。这里的理念是让正当用户承担很少的管理费用,以此来遏制垃圾信息散布者,这样一来,他们就无法再为了发送出几千条消息或帖子而进行数百万次的攻击。有人已经就这种方式的货币成本进行过讨论,但是这种方式还是问题重重。对微小支付和信用的管理会很复杂,有可能还会代价昂贵。而且,货币价值在不同地区、不同社会阶层差异太大,因此,对西欧或北美的人看起来微不足道的一笔支出,对撒哈拉以南的非洲居民而言则是一笔不小的负担。 Internet 的初衷就是要成为打破数字差异的一种强大工具,所以如果要以牺牲这一初衷为代价,未免有些不幸。

    基于成本的一种更实用的垃圾信息抵御方式是强迫发送电子邮件或发布信息的人为此支付数量可观的一些 CPU 周期。这样一来,不管他们是坐在拉各斯(尼日利亚首都)的一个网吧中,还是在旧金山自己的家里使用笔记本,都不会因发布一个正常的帖子而为他们造成支付负担,而这却能有效抵御垃圾信息散布者,因为他们再也不能试图通过向每个站点发送一百个帖子来攻击一千个网站了。这种方式又称为 “proof-of-work” 模式,而其中最常用的当数 “hashcash”。

    Hashcash

    Hashcash 是基于成本的垃圾信息防御的一种巧妙方式。它需要用户在发布内容之前进行 SHA-1 哈希计算,比如通过在发布页面上的 JavaScript 内包括一个计算。这就确保了请求者必须补充一定数量的 CPU 周期才能发布,但目标站点的检查成本又很低。这基本上算是一种服务拒绝的对策。hashcash 的主要问题是很多垃圾信息散布者都会使用 “botnet”,或是被黑客攻击了的计算机,这些计算机已经被重新编程,会服从垃圾信息散布者的命令。这就意味着坏人并不太在乎 CPU 的使用,因为使用的并不是他们自己的 CPU。出于这个原因,hashcash 必须与其他的反垃圾信息技术联合使用。


      

    结束语

    如果此时,您的脑海里尽是与抵御 Web 垃圾信息相关的这些技巧、技术和方法,那么您就对问题的严重性和困难程度有了大致的概念。此问题应该是所有现代 Web 开发人员都应该重视的,因为真正的 Web 2.0 的理念就是要集中社会团体的力量来改进信息系统。而这总是能同时引起好人和坏人的注意力,而且您将能很快了解到坏人在这个方面的创意也很丰富,并且所借助的工具也很智能。无论何时,只要您想出一个很棒的新 Web 2.0 特性,您也很有可能为垃圾信息散布者打开了方便之门。本系列文章带您领略了垃圾信息以及反垃圾信息领域的错综复杂,您应该对 Web 上的社区所存在的问题以及同类社区如何能团结起来共同寻找问题的解决方案有了大致的概念。


    参考资料

    学习

    您可以参阅本文在 developerWorks 全球网站上的 [URL=http://www.ibm.com/developerworks/web/library/wa-realweb11/]英文原文[/URL]。


    阅读本系列的第一篇文章 “[URL=http://www.ibm.com/developerworks/cn/web/wa-realweb10/]会战 Web 垃圾信息,第 1 部分[/URL]”,作者:Uche Ogbuji。


    [URL=http://en.wikipedia.org/wiki/Linkback]Linkbacks[/URL](Refback、Trackback 和 Pingback)是用来连接 Weblog、文章以及其他贴子与联锁讨论的机制,但同时也常被垃圾信息散布者不当利用。


    [URL=http://en.wikipedia.org/wiki/Spamdexing]Spamdexing[/URL] 是一个术语,涵盖了垃圾信息散布者用来提高搜索引擎流行性的各种方式和技术,包括滥用其他站点。


    查阅这个 [URL=http://perishablepress.com/press/2008/04/20/how-to-block-proxy-servers-via-htaccess/]阻塞 Apache 内的代理服务器的妙方[/URL]。


    通过 Paul Meagher 的这篇标题为 “[URL=http://www.ibm.com/developerworks/web/library/wa-bayes1/]Implement Bayesian inference using PHP, Part 1[/URL]” 的文章(developerWorks,2004 年 3 月)了解有关最流行的垃圾信息数据统计分析方法的更多信息。


    通过 David Mertz 的文章 “[URL=http://www.ibm.com/developerworks/cn/linux/l-hashcash.html]可爱的 Python:用 hashcash 打击垃圾信息[/URL]” 了解 hashcash 技术,该技术除了可以对付电子邮件系统中的垃圾信息之外,还可用来最少化 Wikis 上的垃圾信息。


    通过 developerWorks [URL=http://www.ibm.com/developerworks/cn/web/]Web 开发专区[/URL] 内有关 Web 技术的文章和教程(包括本专栏之前的各期文章)扩展您的站点开发技能。


    随时关注 [URL=http://www.ibm.com/developerworks/offers/techbriefings/?S_TACT=105AGX08&S_CMP=art]developerWorks 技术活动和网络广播[/URL]。

    获得产品和技术

    尝试使用一些论坛注册黑名单并禁止列表的服务和具体列表
    [URL=http://sumbit.com/phpbb_spam.htm]phpBB Anti Spam Project[/URL]
    [URL=http://www.stopforumspam.com/]“Stop Forum Spam”[/URL]
    [URL=http://www.gearhack.com/Articles/FightSpam/]“Fight Comment Spam, Ban IP's ”[/URL](包含一个可下载的黑名单)


    关于作者


    按此在新窗口浏览图片
      Uche Ogbuji 是 [URL=http://zepheira.com/]Zepheira, LLC[/URL] 的合伙人,这家公司专门提供下一代 Web 技术解决方案。Ogbuji 先生是 [URL=http://4suite.org/]4Suite[/URL] 的首席开发人员,这是一种用于 XML、RDF 和知识管理应用程序的开放源代码平台;也是 Versa RDF 查询语言的首席开发人员。他是一位出生在尼日利亚的计算机工程师和技术作家,目前定居在科罗拉多的博尔德。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/2/11 14:11:00
     
     baojie 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:小学生
      等级:研一(参加了一年一度的XML大会)(贵宾)
      文章:667
      积分:4442
      门派:XML.ORG.CN
      注册:2003/11/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给baojie发送一个短消息 把baojie加入好友 查看baojie的个人资料 搜索baojie在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 点击这里发送电邮给baojie  访问baojie的主页 引用回复这个贴子 回复这个贴子 查看baojie的博客3
    发贴心情 
    Turing Test...
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/2/23 8:20:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/12/26 15:50:54

    本主题贴数3,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    82.031ms