BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Ruby on Rails出现脚本和计时器安全问题

| 作者 Robert Bazinet 关注 0 他的粉丝 ,译者 杨晨 关注 0 他的粉丝 发布于 2009年9月27日. 估计阅读时间: 4 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

最近发现的两个安全问题给Ruby on Rails社区带来了一些忙乱,每个Rails开发者都必须注意近期发布的升级包。

易受攻击的跨站脚本

第一,可能是最严重的就是Brian Mastenbook发现的跨站脚本(XSS)的脆弱,并且在他的博客中报告了这个问题。Brian描述了他是如何对Twitter和37signals Basecamp的Ruby on Rails进行跨站脚本攻击的。

我的注意力很快地转向了Twitter,这是我当时运行的唯一一个Web应用程序。一会儿,我发现一个URL查询参数中的Javascript代码导致溢出,在twitter.com的主体中运行。是的!跨站脚本,这就是Twitter蠕虫的制作方法。但是这个问题是只针对Twitter,还是能够在其他站点运行?

我很快用一个测试Basecamp账号进行了实验。Basecamp也是和Twitter类似,使用了Ruby on Rails作为其Web前端,所以这是一个测试上述问题是只针对Twitter还是普遍存在于Rails中的好办法。果不其然,同样的能够攻击Twitter的恶意UTF-8字符串也能够影响Basecamp。

虽然这种攻击的可能性不是很高,但是Ruby on Rails团队很快做出了反映,检查了这个报告并且为Rails 2.0 - 2.3发布了补丁。

这些补丁是git-am格式的,包含两个更新部分。清理多字节字符串的代码和这些代码的相关帮助。

团队建议将不支持的Rails升级到现在的版本,因为未来发现的问题解决方案也可能不会支持本次未支持的版本。我们要注意,只有Rails 2.2.x和2.3.x是将来肯定会支持的。

脆弱的计时器

另外一个问题类似于计时器攻击。这种攻击和Rails验证储存在cookie中的消息摘要有关,这个缺陷允许一个攻击者来决定伪造签名能够在什么时候通过验证。这可能诱引其他的攻击,例如伪造摘要。

Rails团队承认这种攻击是不太可能的,但是他们还是建议打上补丁。补丁现在只是支持Rails 2.2.x和2.3.x:

这些补丁是git-am格式的,现在只是包含了单一的代码部分。

Coda Hale是这个Rails计时器问题的发现者。他的网站很好地解释了计时器问题的概念以及它们是如何被利用的。

Ruby on Rails 2.3.4

Rails开发者还是没有忘记给他们运行在Ruby on Rails 2.3.4的Rails程序打上最新的补丁,这个补丁修正了一些bug,并且处理了上述两个安全问题。

安全修复

2.3.4修复了两个报告给我们的安全问题。欲知详情请查看安全通告。

Bug修正
感谢BugMash的帮助,我们在这个版本中修复了大约100个bug。当然不会修复在开发模式下和rack中间件以及rails metal封装引起的重载问题。

这个版本也包括了一个新特性,能够通过一个简单的rake db:seed命令将seed数据添加到项目数据库。

查看英文原文:Ruby on Rails Security Vulnerabilities

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT