2023 年 6 月 30 日星期五

本周推出的 CVE、两个新版 Rails、config.autoload_lib 等!

发布者:vipulnsward

每个人,星期五快乐!我是 Vipul,向你传达 Rails 代码库的最新变更。

[CVE-2023-28362] 可能通过提供给 redirect_to 的用户提供的值进行 XSS
如果你还没有这样做,现在就升级你的 Rails 应用到最新版本!Rails 版本 7.0.5.16.1.7.4 已发布,其中包含一个安全修复程序,以解决在使用用户提供的值时 redirect_to 中一个可能的 XSS 漏洞。它修复了 Rails 中的 redirect_to 方法,该方法允许提供的值包含 HTTP 标头值中不合法的一个字符。此漏洞已被分配了 CVE 标识符 CVE-2023-28362

Rails 7.0.6 已发布!
Rails 7.0.6 也已发布。自 7.0.4 版本发布以来,此版本包含了许多在过去几个月内回传的错误修复程序。

引入 config.autoload_lib
新方法 config.autoload_lib(ignore:) 提供了一种从 lib 文件夹自动加载的简单方法

 # config/application.rb
 config.autoload_lib(ignore: %w(assets tasks))

通常情况下,lib 目录下有子目录,这些子目录不应自动加载或急切加载。此新方法允许你指定需要根据需要自动加载的子目录。

自动加载指南中阅读有关此新功能的更多信息。

引入 config.autoload_lib_once

方法 config.autoload_lib_once(ignore:) 类似于上面介绍的 config.autoload_lib,但它将 lib 添加到 config.autoload_once_paths 中。

通过调用 config.autoload_lib_once,可以自动加载 lib 中的类和模块,即使从应用程序初始化程序中,但不会重新加载。

弹回电子邮件现在可以使用 deliver_now 发送
此变更向 ActionMailbox 添加了 bounce_now_with。当你想立即发送弹回电子邮件,而不是通过邮件程序队列进行发送时,这很有用 -

 # Enqueues the bounce email
MyMailbox.bounce_with MyMailer.my_method(args)

# Delivers the email immediately
MyMailbox.bounce_now_with MyMailer.my_method(args)

railties:install:migrations 的 DATABASE 选项
此变更向 railties:install:migrations 任务添加了一个新的 DATABASE 选项。

这允许我们在引擎中运行 rails railties:install:migrations 时指定应将迁移复制到哪个数据库 -

$ rails railties:install:migrations DATABASE=animals

Active Record 加密支持,用于解密以前以非确定性方式加密的数据
此变更增加了使用 SHA1 哈希摘要解密以非确定性方式加密的数据的支持。

它添加了一个新的 Active Record 加密选项来支持使用 SHA1 哈希摘要对通过非确定性方式加密的数据进行解密

Rails.application.config.active_record.encryption.support_sha1_for_non_deterministic_encryption = true

它解决了从 7.0 升级到 7.1 时出现的一个问题,当时使用 SHA-1 作为摘要类,而不是全局摘要类。

向 ActiveSupport::Deprecation 添加 :report 行为
此更改为 ActiveSupport::Deprecation 添加了 :report 行为。

设置 config.active_support.deprecation = :report 使用错误报告器将弃用警告报告给 ActiveSupport::ErrorReporter

这对于将生产环境中发生的弃用情况报告给 Bug 跟踪器很有用,而不是将它们静默地记录下来。

您可以在 此处 查看完整更改列表。
在过去的一周里,一共有 25 位贡献者 为 Rails 代码库贡献代码!

再次祝大家周五快乐!直到下一次 :-)

订阅 以通过邮件接收这些更新。