2011 年 4 月 5 日星期二

已发布 Rails 3.0.6!

由 aaronp 发布

大家好!已发布 Rails 3.0.6!

让我们先处理一下重要的问题

Rails 3.0.6 包含一个重要的安全性修复!请进行升级!

早于 3.0.6 的 Rails 3.0.x 版本包含一个 XSS 漏洞。该漏洞通过 auto_link 方法体现。即使输入来自未知来源,auto_link 方法也会自动将输入字符串标记为“html 安全”。

例如

<%= auto_link(params[:content]) %>

如果“content”参数包含恶意 javascript,该脚本将被直接呈现,而不会进行转义。

我如何保护自己?

  • 升级到 Rails 3.0.6,之后传递给 auto_link 的内容将自动为您进行转义。

  • 如果您无法升级 Rails,则应用在此找到 此处 的补丁。之后 auto_link 内容将为您进行转义。

  • 如果您无法升级 Rails 或应用此补丁,则将您调用 auto_link 的内容更改为调用 sanitize,如下所示

    <%= sanitize(auto_link(params[:content])) %>

    如果您信任输入,则更改为

    <%= raw(auto_link(params[:content])) %>

感谢

感谢 Torben Schulz 报告此问题!

重要问题已解决

在两个发行候选版本后,我们非常高兴地宣布发布 Rails 版本 3.0.6!我要感谢所有尝试发行候选版本并报告其反馈的人!我希望在发布最终版本之前,我们能够继续征求公众的反馈。

真棒的变更!

如需了解特定程序包中的变更,请在 github 上查看每个具体项目中的 CHANGELOG。更棒的是,您还可以查看 比较视图

值得注意的变更包括

  • ActionPack 中上述的安全性修复 61ee3449674c591747db95f9b3472c5c3bd9e84d

  • 在 ActiveRecord 中取消弃用 reorder 方法 235a4142aa3fee73faa0f01e267a2b4254cea8ce

  • 在 ActiveRecord 中移植“更便宜的属性读取”86acbf1cc050c8fa8c74a10c735e467fb6fd7df8

  • 更正处理时区相关属性的 before_type_cast 0823bbd757f3654a08d300e27873758da606f06a

  • 在 sqlite3 插入中转义二进制数据 7222786c15eacbd432b2bce9798d3f3459f7e05f

  • 为 mysql 适配器修复架构支持 eb1eac93151c1d45c3ef292d99bfcf74799185ea

此更改列表并非详尽的。它们只是我的一些最喜欢的!对于完整列表,参阅 CHANGELOG 文件或在 github 中查看 diff。

GEM 校验和

如果您真想确保您拥有正确的 gem,那么在我推送 gem 之前,以下是我的 shasum!

shasum *

  • fc7b0503bdf99d1ec08dc0dcee3677ca1dd29f0f actionmailer-3.0.6.gem
  • e8fbefd5b0a46408dd557331700ea514a4c199ab actionpack-3.0.6.gem
  • 8509520744ecd8e6712158311a16ba4782b454e2 activemodel-3.0.6.gem
  • 3b392e811ba342a5bf430d89cf4f060d119aba64 activerecord-3.0.6.gem
  • 9eea440bdf885e857ebfb5ff8e31119f76a18a4e activeresource-3.0.6.gem
  • 175ba6286f7802edeeaab30f900d87a38f516728 activesupport-3.0.6.gem
  • ebeea3c1f03db3309ea9a6640e1767ab144ff567 rails-3.0.6.gem
  • 61e24f94ea87fc58175b2067f7f6a3a8c468bfe0 railties-3.0.6.gem

结束语

感谢大家等我度完假才发布此版本!我希望大家喜欢此 Rails 修复程序版本。下次我会尝试不要休太长时间的假!;-)

<3 <3 <3 <3 <3