CSRF対策にワンタイムトークンが有効だという記事をよく見かけるけど、 固定トークンの方がユーザに遷移を強制しない分良い実装だと思うんだけどなんで浸透しないんだろう? まず、CSRF可能なWebアプリは以下の遷移の様に 認証 → 入力 → 確認 → 完了 まず認証を通して、正規のユーザかどうかを確認した後に機能を提供する Webアプリが攻撃対象になる。 ここでワンタイムトークンの場合 確認画面まで正規のユーザが遷移した時にトークンを発行し、 hiddenに値を入れておき、発行したトークンをセッション情報としてサーバに保存する。 正規のユーザが完了画面まで遷移した時にはhiddenの値とセッション情報にあるトークン を比較し、イコールであれば正規のユーザからのリクエストだという事で処理を続ける。 PHPの場合、以下の様な実装になる。 ・確認画面 [php] "> [/php] ・完了画面 [