2011年07月26日

现在很多的互联网应用都采用了tags,在新闻系统中叫做关键词,在社会化应用中叫做标签。一篇“京承铁路北京密云段发生塌方 6列火车运行中断”的标签可能是“京承铁路”、“密云”和“塌方”。标签现在一般都会加上链接,比如说点击“塌方”后的页面会显示所有关于“塌方”的新闻,这样便于用户找到更多的相关新闻。

这一块的安全是容易被忽视的,所以有黑客利用这些标签聚合页批量挂黑链。主要的做法来自于:

1   利用标签聚合页构造新的URL地址。标签聚合页大多数的地址都很简单,比如说http://www.xxxx.com/tags/塌方/  或者http://www.xxxx.com/xxx.aspx?tags=french  等等。黑客会构造成为 http:///www.xxxx.com/tags/www.fuck.com成人视频/  ,或者http://www.xxxx.com/xxx.asp?tags=三级sex.com 等地址。
2   检查上述页面是否能够正常显示。有很多中小型网站的标签聚合页的tags在具体处理是不做验证,也就是URL传入什么标签,就能够在页面上显示什么标签。
3  使用搜索量大的关键词构造数几十万的URL地址。色情、违法的词是最常用的。关键词中顺便带上自己的URL地址,甚至链接代码。
4  使用自己的黑链资源让百度、GOOGLE快速搜索上面的几十万的URL地址。

大家可以看看下图,这是iciba被人入侵后的百度搜索结果

图片

 上述方式带来的页面或链接,在自己的网站上是找不到的,但是在百度搜索中会出现。和其他入侵服务器的黑链不同,这种黑链被百度惩罚的力度会更大,因为百度会先惩罚类似的路径。一旦发现,及时处理到上述链接,使用404转向,并且每天坚持到百度投诉去写邮件,处理的效率还是很高的。不过惩罚会延续较长的一段时间。

但是这种黑链发现也比较容易。因为标签聚合页一般都有流量统计的代码。被挂后,在流量统计系统中能看到网站流量的暴增,特别是百度来源流量的暴增,而搜索引擎关键词中会发现大量的色情和违法关键词。

最基本的防范措施有2点:

1   标签聚合页对URL传入标签的验证机制。可以限制长度,更多的是通过数据库进行验证(标签入库)
2   URL不可遍历。(如果不考虑SEO)

台湾岛旅游网的朋友彬枫写的一篇博文,转载收藏、学习。

2011年07月24日

从年初到现在,我搭建了三个全新网站,用的都是开源系统,效果均比较理想。如果全部从零开发,则是一项很难完成的任务。

我建的第三个网站是台湾岛旅游网(www.taiwandao.tw),用PHPCMS 2008 + Hdwiki + CTSCMS,从想法、实施、调试、组织内容到初步上线,只用了一个月就初步完成了,如果全部自己开发,一个10人左右的技术团队,加班加点半年时间也未必能够完成、上线,从这点来看,采纳开源系统建站能节约大量的成本。

但在使用开源系统时也遇到一些问题,下面我简要说说。

创建台湾岛旅游网(www.taiwandao.tw)时,最初想用PHPCMS v9,但v9缺少问答系统,所以最终选用了Phpcms 2008与Hdwiki的整合版。

因为在phpcms 2008上找不到合适的酒店系统,又不得不买了一款CTSCMS旅游管理系统,但这套系统实际是在dedecms上面做的二次开发,打包售卖的,1600一套。

这反应了几个问题:

1)虽然phpcms或dedecms是一个可二次开发的平台,但二次开发还是有难度的,一般人完成不了。

2)平台上可使用、有保证的应用程序还是太少了。

3)缺少帮助文档,在论坛提出问题,也不能得到及时的回复和有效的解决,学习的成本比较高。

以上这些反应出的关键问题在于phpcms的定位,phpcms团队只把自己当成了软件供应商,而不是平台服务商。Phpcms实质是网站敏捷开发的基础平台,无论是什么级别的网站都没有必要从零开始,PHPcms如果能树立这个志向,未来将会有所不同。

我的建议是:

1)做培训:大量免费的培训,网上的,网下的培训,从入门级到二次开发的培训;

2)建立程序员认证体系:象微软一样建立phpcms程序员认证,他们不仅是PHPCMS的使用者,PHPCMS专家,还是PHPCMS宣传员;

3)应用程序:苹果的app store为什么有那么多程序可下载,是因为程序员能从中分得利益与荣誉。实际很多用户在实践中已经开发出很多应用程序,但由于缺少利益激励机制,用户不愿分享,或者分享出来的不完整,缺少说明与技术帮助,缺少后继的升级等等一系列问题。如果官方能对应用程序的可靠性、完整性做出认证,帮助用户销售,提供分成机制,那么象问吧,酒店系统,旅游线路系统,招聘系统,sns系统等等都会在phpcms平台上有完整的、可用的系统,用户建站时则会更加容易选择phpcms平台,并依赖这个平台。我们从CTSCMS的商业化可以看出这种模式的可行性。

4)phpcms团队要建立外围的服务团队,完成培训体系、认证程序员体系、讲师、与培训机构的合作机制、专业的技术支持团队等等。

以上是我个人实践过程中的一些感想,算是抛砖引玉吧。

Tags: ,.