なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2023/06/27)

2023/06/27分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

railties/CHANGELOG.md


Merge pull request #47827 from shouichi/remove-class-cache

activerecord/lib/active_record/fixtures.rbの修正です。

fixtureのclass cacheの仕組み(ActiveRecord::FixtureSet::ClassCache)を削除しています。fixtureには使用するclassをファイルで定義出来るオプション(model_class)があるのですが、先のcacheのせいでこのオプションが正しく動作していなかった為、オプションの方を優先しcacheを削除するようにしています。


Merge pull request #48507 from szymonlipka/fix-empty-string-range

activerecord/lib/active_record/connection_adapters/postgresql/oid/range.rbの修正です。

PostgreSQLのrange typeに空文字を指定した場合に、empty rangeとして扱うよう修正しています。


This allows Rails projects with multiple databases to specify which database they would like the migrations to be copied to.

activerecord/lib/active_record/railties/databases.rakeの修正です。

railties:install:migrationsに、他のDBを指定する為のDATABASEオプションを追加しています。このオプションが指定された場合、そのDBのmigrationsを使用して処理を実行するようになっています。


Fix flaky tests without guaranteed sort

activerecord/test/cases/associations/has_many_associations_test.rbactiverecord/test/cases/associations/has_many_through_disable_joins_associations_test.rbの修正です。

idなどのデータをDBから取得する際にsortを指定するよう修正しています。結果が不定になるのを避ける為。


Added check for illegal HTTP header value in redirect_to

actionpack/lib/action_controller/metal/redirecting.rbの修正です。

redirect_toメソッドでredirect URLにHTTP headerとして不正な値(e.g. javascript:alert(document.domain)\b)が指定されていた場合に、処理をブロックするよう修正しています。不正な文字列をそのままLocation headerに指定するとXSS出来てしまう可能性がある為。。CVE-2023-28362。

参考: [CVE-2023-28362] Possible XSS via User Supplied Values to redirect_to - Security Announcements - Ruby on Rails Discussions


Fix rubocop warning

actionpack/lib/action_controller/metal/redirecting.rbの修正です。

Rubocopの指定に違反している箇所があったのを修正しています。


Avoid creating match object when checking for illegal header value

actionpack/lib/action_controller/metal/redirecting.rbの修正です。

redirect_toに指定するheaderのチェック処理で、Regexp#matchを使用していたのをRegexp#match?を使用するよう修正しています。


Fix indentation in ActionDispatch::Routing::RouteSet::Dispatcher

actionpack/lib/action_dispatch/routing/route_set.rbの修正です。

ActionDispatch::Routing::RouteSet::Dispatcherのインデントを修正しています。