2023-03-30 Rails7 で入ったオープンリダイレクト対策
Rails 7 からオープンリダイレクトがデフォルトで対策されるようになった。
By default, Rails protects against redirecting to external hosts for your app’s safety, so called open redirects. Note: this was a new default in Rails 7.0
ActionController::Redirecting | RailsDoc(β)
外部URLにリダイレクトさせようとした場合、 UnsafeRedirectError
が出るようになる。
このエラーを回避して安全な外部URLに飛ばしたい場合は allow_other_host
のオプションをつければOK。
redirect_to "https://rubyonrails.org", allow_other_host: true
オープンリダイレクト対策を無効化したい場合
下記のように設定すればOK(基本的には無効化すべきではないが)。
config.action_controller.raise_on_open_redirects = false