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?

More than 3 years have passed since last update.

【Rails】CSRFが引き起こすエラー

Last updated at Posted at 2021-04-13

#CSRF
CSRF(クロスサイトリクエストフォージェリ)とは、Webアプリケーションの脆弱性を利用したサイバー攻撃の一種
例:悪意のある第三者が用意したリンクをサービスの利用者が踏んだ際に、本人の意図しない操作が行われてしまう
詳しくは、https://qiita.com/wanko5296/items/142b5b82485b0196a2da

#CSRFが引き起こすエラー
CSRF対策として、サーバはクライアントに対してトークンを設定します。
リクエストが発動した際に、クライアントのトークンとリクエストのトークンを確認し、攻撃者からのリクエストを防ぐことができます。
通常、GET以外のリクエストではセキュリティトークンが必須となっています。
Railsの場合、

protect_from_forgery with: :exception

で、アプリ内のフォームに対してトークンを発行しています。

しかし何らかのエラーでトークンが一致しない場合、リクエストが正常に動作しない場合があります。
(以下のようなエラーが起きる)

Can't verify CSRF token authenticity.

#対応
メソッドのあるコントローラー内に、以下の記述を追記します。

skip_before_action :verify_authenticity_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?