20
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Rails】v 5.2ではprotect_from_forgeryがapplication_controller内にない?

Last updated at Posted at 2019-05-26

はじめに

先日参加した勉強会にて、
application_controller.rb に記述されているprotect_from_forgery with: :exceptioncsrfを対策 している」(裏を返すと、ここを削除するとcsrf攻撃を受けるリスクが生まれる)
という説明を受けたのだが、
そもそも protect_from_forgery with: :exception
なるコードを見た事が無い気がしたので調べてみた。

比較

以下、Rails versionが5.1.75.2.3rails newした直後のapplication_controller.rbの比較です。

v5.1.7

$ rails -v
Rails 5.1.7
application_controller.rb
class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
end

protect_from_forgery with: :exceptionがある!

v5.2.3

$ rails -v
Rails 5.2.3
application_controller.rb
class ApplicationController < ActionController::Base
end

protect_from_forgery with: :exceptionが無い!

結論

確かに、rails5.1台までは**protect_from_forgery with: :exception**がapplication_controller.rbで記述されていることが確認できる。

どうやらRails version5.2 以降ではActionController::Base内でprotectしているようです。
https://stackoverflow.com/questions/50905654/rails-5-2-actioncontrollerinvalidauthenticitytoken

間違いなどありましたらご指摘ください!

20
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?