关闭

RSS阅读中潜在的安全问题 【 综合文 】

2606人阅读 评论(0) 收藏 举报
前2天读到了? RSS阅读中潜在的安全问题 | 未完成 - Incomplete,讲的是混杂在Rich Text的RSS中的js会在RSS阅读客户端执行从而导致潜在的漏洞问题。正巧我在上个周末的时候也遇到了类似的一个问题:不过更严重的是在RSS聚合的服务器端。我的首页是用require_once('lilina.html') 的方式包含一个lilina.php生成的静态页面组合生成的,源代码如下。其中也包含了跨服务器PHP脚本执行的安全漏洞。如果我订阅的RSS中有黑客将其中混入 <?php >这样的代码,这样一包含:不就可以直接在我的服务器上直接运行php脚本了吗?这个潜在漏洞的发现还是从MSN的Search blog的一篇FEED中引出的。
上周日的问题是这样的:周日上午我忽然发现自己的blog中间require的部分无法显示了,调查了一个上午原来php新版本中缺省将display_error关闭了,程序遇到错误只会停止执行,需要在需要显示错误信息的php页面中设置: ini_set('display_error', true); 才会正常显示错误。我另外做了一个test.php 显示了一下:发现是某行上除了php 解析错误。定位过去才看到原来是MSN的Search blog的一篇上有一个 <?标记,被require_once后,于是后面的html代码被当作php代码:当作php脚本的开始执行了,当然错误很多。开始想先将<?这样的标记禁掉通过设置php.ini中的short_open_tag = Off,但这样治标不治本,而且还导致了更多的php代码泄漏。正确的方法是包含一个静态文件时:使用fopen然后一行一行的buffer print出来,这样就不会执行远程文件中可能的php代码了,不知道PHP有没有包含其他文件但不执行其中的代码简单函数。代码如下:
$filename = "lilina.html";
$dataFile = fopen( $filename, "r" );

if ( $dataFile ) {
    while (!feof($dataFile))
    {
        $buffer = fgets($dataFile, 4096);
        echo $buffer;
    }
    fclose($dataFile);
} else {
    die( "fopen failed for $filename" );
}
后记:谢谢 Zheng Kai: 我已经改用 file_get_contents('lilina.html');了。

正如广告资源总是跟随着人们的注意力转移而转移一样,各种Spam以及恶意代码也同样在追随着网络用户注意力的变动。当RSS阅读逐渐开始变得流行起来,恶意代码也盯上了RSS这种新兴的阅读方式与阅读工具。

上周在GreatNews的用户论坛上,就有一位用户提出希望GreatNews增加恶意代码过滤功能,因为他所订阅的RSS就受到恶意代码的滋扰。

我订阅的一个RSS链接,一直好好的,但是今天查看这个频道时,莫名其妙的跳转到了hxxp: //mtv.5522.com/music/index.htm 这种垃圾网站,不知又是哪一个乱发垃圾广告的SB申请了Blog,被RSS收录了,原本这一类的都是发一堆的文字链接,这个到是好,升级了,点都没点就直接去了,靠!

从Temp里找到了源文件,分析了一下,用的方法是嵌入脚本<script src="http://flash.5522.com/ads/dvd.js”></script>脚本里再跳转到那个SB网站.不知GN能不能加一个脚本屏蔽功能?

虽然现在Feed中的恶意代码还没有泛滥,但已经有恶意网站发现了这块有潜力的新领域,利用在RSS中内嵌Javascript和activeX而达到自动跳转或者其他的功能,甚至是植入病毒或木马,在RSS阅读器中添加恶意代码过滤的功能已经成为对RSS阅读器的新要求。

通过订阅一个专门用于RSS阅读器安全性检测的Feed(本订阅内容含有不良代码,请慎重订阅,不过它并不会对你的电脑造成重大不利影响),可以发现有不少客户端RSS阅读器并没有过滤器中的不良代码,可见RSS中潜在的安全问题还没有引起大家的重视,不过FeedDemonGreatNews(build 339)都可以通过安全性测试。

在线RSS阅读器的情况稍好,在我测试的RojoBloglinesGougouBoyue四个中外在线RSS阅读器中,只有Boyue有提示js被执行,存在安全性问题,而其余的三个阅读器都不会执行其中内嵌的js。但另一方面,其中只有bloglines的内容显示比较正常,显示出10篇文章,而Rojo中根本显示不出任何内容,Gougou/Boyue中都只显示一篇文章,而该RSS中实际包含12篇文章。可见虽然主要的在线RSS阅读器都限制了恶意代码的执行,但可能并非专门针对RSS中的内置恶意代码进行过滤,因此显示出来的过滤效果存在问题。

原本纯洁、方便,无需受闪烁的广告和恼人的插件影响的RSS阅读方式,不应像网页一样也成为恶意网站肆虐的地方,无论是在线还是客户端的RSS阅读器都应该开始重视这个潜在的安全问题,不要让普通网民不知不觉中又成为恶意网站的俘虏。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3156075次
    • 积分:37619
    • 等级:
    • 排名:第113名
    • 原创:801篇
    • 转载:195篇
    • 译文:5篇
    • 评论:1084条
    最新评论