CSRF対策 - 初回アクセスがPOSTの場合
CSRFの勉強がてら、SpringSecurityを使ってWEBアプリ開発を個人で行っています。
SpringSecurityを適用したアプリを別アプリからPOSTで呼び出したときに、
SpringSecurityのCSRFフィルターに引っ掛かり、403エラーが返ってきてしまいました。
(POSTなので、CSRFフィルターでひっかかることは期待通りの動作)
個人で作るアプリでは初回アクセスはGETで行えばCSRFフィルターに引っ掛かることもなく、問題ないでしょう。
しかし、普段目にするシステム間連携のリンク(証券番号や顧客番号を渡して相手先で当該画面を出す)をGETにしてしまうと、
URLにパラメータが付加されてしまい重要なパラメータが晒されてしまい、あまりよいとは思えません。
そこで下記の2点をお伺いしたいです。
・一般的に初回アクセスをGETで行っていますが、理由を教えていただきたいです(なぜPOSTで呼び出さないのか)
・CSRFの保護対象になっているアプリをPOSTでを呼び出すときにCSRFのチェックの対象から初回アクセスを外す方法
→初回アクセスはPOSTで、CSRFのチェックの対象にならず、アプリ内でのPOST処理ではCSRFのチェックの対象に
なるように組めることがゴール
初回アクセスがPOSTの時にSpringのCSRFトークンがセッションに保存された直後なのでMissingCsrfTokenExceptionがthrowされる。
どちらかがわかる、多言語を使ってCSRFの対策をしているけどこうやって回避したなどアイデアがあればコメントいただければ幸いです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。