版权所有IBM公司2009商标真正的Web2.
0:会战Web垃圾信息,第1部分第1页,共6真正的Web2.
0:会战Web垃圾信息,第1部分通过评估访问者行为和控制工作流来减少垃圾信息UcheOgbuji合伙人Zepheira,LLC2009年1月19日Web上的垃圾信息已经成为了现代Web开发人员最大的威胁.
在如何搞破坏以及如何在所有能获得的Web2.
0页面上传播广告方面,这些"坏家伙"也变得越来越复杂.
更麻烦的是,垃圾信息还常被用来散布恶意软件.
与垃圾信息的较量已经开始,Web开发人员必须及时掌握一些可用的基础工具来对付Web站点上的垃圾信息.
本系列文章由两部分组成,提供了有关反垃圾信息技术的详细指南.
本文是其中的第一篇文章,介绍了如何评测一个访问者是否是垃圾信息散布者以及如何组织站点工作流来阻止垃圾信息.
查看本系列更多内容在1994年,NationalScienceFoundation解除了对在Internet上进行商业宣讲的禁令.
在当时,电子邮件和Usenet是主要的交流平台,而诸如Gopher这样简单的发布系统则试图建立更广泛的用户群.
Web尚未出现.
那年,一个名为Canter&Siegel的律师事务所在Usenet上发布了第一个面向大众的商业广告垃圾信息,它雇了一名Perl程序员来为其"绿卡彩票"服务生成广告,这些广告随后被爆炸式地扩散到了6,000多个新闻组.
他们成了名,但同时也招来非议.
他们随即开始为他人提供类似的垃圾信息,宣扬垃圾信息的好处并撰写了"互联网市场营销"方面的书.
从那之后,几乎没有一个在线论坛幸免于不受欢迎的商业广告.
随着Web逐渐成为人们进行在线谈论的重要途径,在Web2.
0技术为人们能在Web畅所欲言逐渐敞开方便之门的时候,垃圾信息问题也复仇般地滋长起来了.
有些时候,Web垃圾信息的害处无关痛痒,但更多时候,它都是十分有害的.
垃圾信息散布者通常都不会满足于只发布一两个消息,而是会向论坛狂发消息,直至垃圾消息淹没了本来的主题.
有时,垃圾信息包含色情或反社会的消息,会带来更大的负面影响.
大多数搜索引擎都会将带有这类消息或提供与这类垃圾信息相关的站点链接的页面减值,这就意味着垃圾信息能减少搜索引擎的优化处理.
最终的后果往往是Web发布者往往要在反垃圾信息方面浪费大量资源,并会占用处理其他任务的时间.
Web垃圾信息有多种格式,包括:wikis上的垃圾文章和破坏性文章Weblog上评论性质的垃圾信息developerWorksibm.
com/developerWorks/cn/真正的Web2.
0:会战Web垃圾信息,第1部分第2页,共6论坛、问题跟踪器和其他讨论论坛内的垃圾帖子引荐垃圾信息(垃圾信息站点假装将用户引荐到列有引用信息的目标站点)社会网络上的虚假用户条目处理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以及其他基于基本名称的类似修改)向一个用ibm.
com/developerWorks/cn/developerWorks真正的Web2.
0:会战Web垃圾信息,第1部分第3页,共6户发送具有主要内容的文本区域.
最好不要允许一个变换字段名被重用.
也可以进行可视变换,比如在其他模式表明所使用的这个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.
(humanquotient)对付Web垃圾信息的一种很常用的方式是nonce测试的一种改良.
做法是在post表单包含某种可视测试,这种测试对人而言很容易,对机器人程序而言则很复杂.
最常见的一种方法是CAPTCHA.
在这种测试内,您给出的是一个代表某种数字符号的图像,用户必须读懂并在表单字段内输入这些符号.
垃圾信息散布者常常会使用视觉字符识别来破解CAPTCHA,所以通常我们需要严重歪曲这些图像.
图3是CAPTCHA图像的一个例子.
图3.
CAPTCHA图像要求用户回答"smwm"developerWorksibm.
com/developerWorks/cn/真正的Web2.
0:会战Web垃圾信息,第1部分第4页,共6虽然在本例中图像有所歪曲,垃圾信息散布者仍然能破解CAPTCHA,所以需要更高程度的歪曲,如图4所示.
图4.
CAPTCHA图像要求用户回答"followingfinding"这里的问题有几个.
其一是,为了战胜垃圾信息散布者,CAPTCHA需要很高程度的歪曲,这样一来,人也很难看懂.
有些人,比如视觉障碍人士,根本就看不到CAPTCHA图像,所以这个技巧的适用性比较差,在某些情况下甚至是不合法的.
如果忽略这些困难不谈,CAPTCHA已经成为了时下最流行的垃圾信息防治工具之一.
文本确认一种类似的、同时又不会影响访问性的技术是向用户提出一个随机的文本问题.
如果站点针对的是一个特定的领域,所提的问题可能会需要回答者具有对该领域的一些基础知识.
比如,在一个医疗信息和服务站点,您可能会提出这样的问题,"人体内与呼吸相关的主要器官是什么",预期的答案自然是"肺".
对于这种方式,至关重要的一点是提出的问题要多样,并且要格外注意措辞以便让人能回答出来,而机器人程序则基本猜不到.
结束语您可以对本文中所谈论的这些技巧和技术进行改进,比如,您可以强迫用户预览他们要发的信息.
Boomer.Host是一家比较新的国外主机商,虽然LEB自述 we’re now more than 2 year old,商家提供虚拟主机和VPS,其中VPS主机基于OpenVZ架构,数据中心为美国得克萨斯州休斯敦。目前,商家在LET发了两款特别促销套餐,年付最低3.5美元起,特别提醒:低价低配,且必须年付,请务必自行斟酌确定需求再入手。下面列出几款促销套餐的配置信息。CPU:1core内存:...
HostHatch在当地时间7月30日发布了一系列的促销套餐,涉及亚洲和欧美的多个地区机房,最低年付15美元起,一次买2年还能免费升级双倍资源。商家成立于2011年,提供基于KVM架构的VPS主机,数据中心包括中国香港、美国、英国、荷兰、印度、挪威、澳大利亚等国家的十几个地区机房。官方网站:https://hosthatch.com/NVMe VPS(香港/悉尼)1 CPU core (12.5%...
关于Linode,这是一家运营超过18年的VPS云主机商家,产品支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,最低每月费用5美元($0.0075/小时)起。目前,注册Linode的新用户添加付款方式后可以获得100美元赠送,有效期为60天,让更多新朋友可以体验Linode的产品和服务。Linode的云主机产品分为几类,下面分别列出几款套餐配置...