0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rails CSRF対策について

Last updated at Posted at 2021-10-07

CSRFとは

Cross Site Request Forgeryのことで、
Webアプリに知らない間にリクエストが送られる不正攻撃のことです

例えばインスタで知らない間に自分の投稿を消されていたりしたら
CSRFです。

CSRF対策の設定

application_controller.rbに下のような記述をすると、

Can't verify CSRF token authenticity

というエラーが出てきます。このエラーが出たらCSRFのエラーで
Railsがちゃんとしたリクエストがいっているかどうかを CSRF Tokenというもので
確認するのですがそれが確認できないというエラーです。

application_controller.rb

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
 
end

解決策

application_controller.rbに下のような記述をします。

application_controller.rb
class ApplicationController < ActionController::Base
  protect_from_forgery with: null_session
 
end

これは公開する時にはあまり役に立たないです。CSRF対策をOFFにしてしまうからです。

他にも

class ApplicationController < ActionController::Base
   skip_before_action :verify_authenticity_token

end

このような方法もあるみたいです。 CSRF 対策を放棄する時に使います。

最後に

上のやり方はあくまでエラーを解決するための方法です。
アプリを公開したりする場合は、CSRF Tokenの設定が必要になります。
下の参考資料に載っているので調べてみてください。

参考資料

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?