SPAのCSRF対策例corocn2021/09/30に公開2024/10/262件RailsRubySecuritySPACSRFtech!2024.10.26この記事はもう内容が古いので参照しなくて良いです。これからは以下の記事を参考にしてください。構成でどう実装するかについてお伝えします。対策について解説した記事は多くありますが、最近直面したユースケースに沿った記事がなかったので、改めて整理しておくと誰かの役にたつかなと思ったので書きました。次のようなシンプルな構成のシステムを考えます。強みを生かし、小さく立ち上げたいときにありがちな構成です。対策が必要になります。して扱う必要がある部分に注意してください。認証・認可・セッション管理については本記事では詳しく触れませんが、ペパボさんの記事が今回のシステム構成にも近く、分かりやすいと感じました。解説されている古典的な手法です。https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html#synchronizer-token-pattern大きくは次のような流れになります。この一連の流れを簡略化するためのヘルパーが用意されています。トークンを自動で生成して出力します。フォームの送信と共にトークンが送信され、検証が行われます。いう例外が発生します。検証部分のコードです。側にトークンを渡す必要があります。設定が楽できるので、今回は前者ベースで説明します。実際に処理の流れを見ていきましょう。検証し処理を続行させるのような流れになります。トークン更新タイミングトークンをどのタイミングで更新すればいいのでしょうか。Sheetを見てみましょう。minimal.まとめるとこうです。API)で都度更新してしまえば良さそうですね。設定ここからは実装の説明になります。デフォルトで有効になっていないため、明示的に有効にする必要があります。endendここまではログイン機能を作った時点で設定されているかもしれません。トークンを返すためのヘルパーメソッドを用意しておきます。読み取れるようにしています。全体設定で行っても大丈夫です。