每个人,星期五快乐!我是 Vipul,向你传达 Rails 代码库的最新变更。
[CVE-2023-28362] 可能通过提供给 redirect_to 的用户提供的值进行 XSS
如果你还没有这样做,现在就升级你的 Rails 应用到最新版本!Rails 版本 7.0.5.1 和 6.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(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 代码库贡献代码!
再次祝大家周五快乐!直到下一次 :-)
订阅 以通过邮件接收这些更新。