なるようになるブログ

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

rails commit log流し読み(2023/03/14)

2023/03/14分のコミットです。

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

railties/CHANGELOG.md

activerecord/CHANGELOG.md


Merge pull request #47597 from higher-pixels/fix-47535

actionpack/lib/action_dispatch/middleware/ssl.rbの修正です。

Rack 3でcookieが複数指定されている場合に、ActionDispatch::SSL middlewareのcookieのパース処理がエラーになってしまうバグがあったのを修正しています。


Merge pull request #47644 from zzak/action-discord

GitHub Actionsの修正です。

main branchのテストがfailした場合に、discordに通知するよう修正しています。


Implement SafeBuffer#bytesplice

activesupport/lib/active_support/core_ext/string/output_safety.rbの修正です。

信頼されていないユーザー入力を使用して、SafeBufferRuby 3.2で追加されたbytespliceメソッドを使用した場合にHTMLのエスケープ処理が実行されない脆弱性があったのを修正しています。CVE-2023-28120。

参考: [CVE-2023-28120] Possible XSS Security Vulnerability in SafeBuffer#bytesplice


Ignore certain data-* attributes in rails-ujs when element is contenteditable

rails-ujsの修正です。

data-methoddata-remotedata-disable属性を含む不正なHTMLコンテンツをクリップボードから貼り付けた場合に、XSSが出来てしまう可能性がある脆弱性を修正しています。CVE-2023-23913。

参考: [CVE-2023-23913] DOM Based Cross-site Scripting in rails-ujs for contenteditable HTML Elements


Typo fix on create_table description

activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rbのdocの修正です。

create_tableメソッドのdoc内のタイポを修正しています。


Use Thor for built-in middleware task

railtiesの修正です。

middlewareコマンドを実装するのにrake taskを使用していたのを、Thorを使用するよう修正しています。


Merge pull request #47584 from yahonda/diag_47542

railties/lib/rails/generators/rails/app/templates/Gemfile.ttの修正です。

RubyGems 3.3.16以上を使用している場合のときのみ、rails newで生成するGemfileにprerelease Rubyのバージョンの指定が行えるよう修正しています。


Extract gem_ruby_version from app generator

railties/lib/rails/generators/app_base.rbrailties/lib/rails/generators/rails/app/templates/Gemfile.ttの修正です。

Ruby versionの取得処理をメソッドに切り出しています。


Delegated Type supports customizeable foreign_type column

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

delegated_typeで使用するobjectのtypeのcolumnをカスタマイズ出来るよう修正しています。デフォルト(role +_type)から変更したい場合、delegated_typeメソッドのforeign_type`オプションを指定すれば良いようになっています。