大家好!Rails 3.0.6 已发布!
我们先来处理重要的事情
Rails 3.0.x 版本早于 3.0.6 的版本存在 XSS 漏洞。该漏洞通过 `auto_link` 方法表现出来。`auto_link` 方法会自动将输入字符串标记为“html safe”,即使输入来自未知来源。
例如
<%= 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 适配器的 schema 支持 eb1eac93151c1d45c3ef292d99bfcf74799185ea
此更改列表并非详尽无遗。它们只是我最喜欢的一些!有关完整列表,请查看 CHANGELOG 文件或在 GitHub 上查看 diff。
如果您想完全确保您获得了正确的 gem,以下是我推送 gem 之前的 shasums!
感谢您在我度假结束后等待我发布!我希望大家都能喜欢这个 Rails 的错误修复版本。下次我会尽量少度假!;-)
<3 <3 <3 <3 <3