QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

  • 2009-09-26
  • 本文字数:1241 字

    阅读完需:约 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 格式的,包含两个更新部分。清理多字节字符串的代码和这些代码的相关帮助。 - 2-0-CVE-2009-3009.patch – 2.0 版本补丁

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

脆弱的计时器

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

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

这些补丁是 git-am 格式的,现在只是包含了单一的代码部分。 - 2-2-timing-weakness.patch – 2.2 版本补丁

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

2009-09-26 20:051855
用户头像

发布了 90 篇内容, 共 35.6 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

我看JAVA 之 Thread & ThreadLocal

awen

Java 源码 多线程

2021突击金三银四必备:BAT1000Java面试真题合集!

比伯

Java 编程 架构 面试 计算机

我看JAVA 之 基本数据类型与封装类型

awen

Java 源码 基本数据类型

我看JAVA 之 Class

awen

Java 源码 jdk class

我看JAVA 之 枚举类型

awen

Java 源码 jdk 枚举

Linux入门篇 —— Linux 用户与组管理详解(system-config-users && 命令行)

若尘

Linux 命令行 用户

第十二周 作业

简简单单

日记 2021年2月27日(周六)

Changing Lin

2月春节不断更

基于matlab的控制系统与仿真6-PID控制模型

AXYZdong

matlab 2月春节不断更

Linux常见IO分析工具

运维研习社

涨薪50%,从小厂逆袭快手 - 附面经

haxianhe

面试

公链,区块链的未来和归宿

CECBC

区块链

前端170面试题+答案学习整理(良心制作)

我是哪吒

程序员 面试 大前端 28天写作 2月春节不断更

LiteOS:SpinLock自旋锁及LockDep死锁检测

华为云开发者联盟

死锁 LiteOS 自旋锁 SpinLock LockDep

第十二周 学习总结

简简单单

双指针高频面试题:「三数之和」的姐妹篇 ...

宫水三叶的刷题日记

面试 LeetCode 数据结构与算法

观点 | 破解云管理平台在数据中心管理体系中定位模糊的困局

BoCloud博云

云计算 PaaS 服务目录 多云管理平台 数据中心管理

程序员成长第十四篇:做好时间管理(二)

石云升

程序员 时间管理 28天写作 2月春节不断更

写给 Go 初学者的指北

Rayjun

Go 语言

智能客服+智能助手,这波“数字员工”的业务能力太强了!

华为云开发者联盟

华为 AI 数字 智能客服 智能助手

探索图神经网络的网络架构和训练方法

华为云开发者联盟

神经网络 AI 图神经网络 网络架构 GNNs

多年阅读《经济学人》是一种什么体验?

wbliu85

深入解读华为云细粒度文本情感分析及其应用

华为云开发者联盟

AI 华为云 情感分析 语言语义 文本情感分析

Enterprise Tech30(2021)

行人23

Tech ET30

推荐程序员平时使用最多的绘图软件!!!

秦怀杂货店

软件 流程图 绘图

GitHub上连夜被下架!阿里巴巴2021版JDK源码笔记(2月第三版)

Java架构追梦

Java 阿里巴巴 面试 jdk源码 金三银四

我看JAVA 之 Annotation

awen

Java 源码 jdk 注解 annotation

《经济学人》2021年2月27日刊精彩文章导读及资源下载

wbliu85

紧急寻人,还缺75万!区块链产业为何“一才难求”?

CECBC

区块链人才

如何学习一项技能

不在调上

金融数字化转型浪潮呼啸而来 大数据区块链落地场景全面开花

CECBC

金融

Ruby on Rails出现脚本和计时器安全问题_Ruby_Robert Bazinet_InfoQ精选文章