CVE、1週間に2回の新規Railsリリース、config.autoload_libなど盛り沢山!
皆さん金曜日をいかがお過ごしでしょうか。 この私VipulからRailsのコードベースにあった最新の変更をお届けします。
[CVE-2023-28362] 利用者により与えられたredirect_toへの値によるXSSの可能性
お済みでなければご自身のRailsアプリケーションを最新版に更新してください!
利用者により与えられた値を使う場合のredirect_to
にXSS脆弱性の可能性があった件について、セキュリティ修正を当てるRailsバージョン7.0.5.1、6.1.7.4がリリースされました。
修正の対象は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
中のクラスとモジュールが自動読み込みされるようになりますが、再読み込みされることはありません。
不達Eメールをdeliver_nowで送れるようになりました
この変更ではbouse_now_with
をActionMailbox
に追加しています。
不達Eメールをメーラーキューを通すことなく直ちに送りたい場合に便利です。
# 不達Eメールをキューに追加
MyMailbox.bounce_with MyMailer.my_method(args)
# Eメールを直ちに配送
MyMailbox.bounce_now_with MyMailer.my_method(args)
railties:install:migrations用のDATABASEオプション
この変更ではDATABASE
新規オプションをrailties:install:migrations
タスクに追加します。
これによりエンジンでrails
railties:install:migrations
を走らせる際にどのデータベースマイグレーションが複製されるべきかを指定できるようになりました。
$ rails railties:install:migrations DATABASE=animals
以前非決定的に暗号化されたデータを復号するActive Recordの暗号の対応
この変更ではSHA1
ハッシュダイジェストで非決定的に暗号化されたデータを復号する対応が追加されました。
SHA1ハッシュダイジェストで非決定的に暗号化されたデータの復号に対応するActive Recordの新規オプションを追加しています。
Rails.application.config.active_record.encryption.support_sha1_for_non_deterministic_encryption = true
大域的なダイジェストクラスの代わりにSHA-1が使われている場合に7.0から7.1に更新する際の問題が対処されています。
ActiveSupport::Deprecationに:report動作を追加
この変更ではActiveSupport::Deprecation
に:report
動作を追加します。
config.active_support.deprecation =
:report
はエラー報告器を使って非推奨の警告をActiveSupport::ErrorReporter
に報告するよう設定します。
これは実運用で発生した非推奨の報告について、ただログに流れたままにする代わりに、不具合管理表に報告させるようにするのに便利です。
変更の全一覧についてはこちらをご覧下さい。 この1週間に25名の方々からRailsのコードベースに貢献していただきました!
良い金曜日をお過ごし下さい!また次回をお楽しみに :-)
購読するとこうした更新をメールで受け取れます。