CSRF トークン
CSRF トークン とは何ですか?
CSRF トークンセッションごとに予測不能な値をフォームやヘッダーに埋め込み、状態を変える要求が自サイトから出たことをサーバーが確認できるようにする仕組み。
CSRF トークンはクロスサイトリクエストフォージェリへの定番防御策です。サーバーはランダム値を生成してユーザーのセッションに紐づけ、HTML フォームに埋め込むか専用ヘッダーで送ります。状態を変える各リクエストでは送信されたトークンと期待値を比較し、不一致なら拒否します。代表的な実装は同期トークン方式(サーバー側状態)、ダブルサブミットクッキー(ステートレス)、OWASP HMAC 方式です。現代のアプリでは CSRF トークン、SameSite=Lax/Strict クッキー、カスタムヘッダー、Origin/Referer 検証、厳格な CORS を組み合わせるべきです。JS から bearer トークンのみで呼び出す API は CSRF トークン不要ですが、再生攻撃対策は必要です。
● 例
- 01
フォーム内の隠しフィールド <input type="hidden" name="csrf" value="a8f1...">。
- 02
X-CSRF-Token ヘッダーをサーバー側でセッション秘密値と照合する。
● よくある質問
CSRF トークン とは何ですか?
セッションごとに予測不能な値をフォームやヘッダーに埋め込み、状態を変える要求が自サイトから出たことをサーバーが確認できるようにする仕組み。 サイバーセキュリティの ID とアクセス カテゴリに属します。
CSRF トークン とはどういう意味ですか?
セッションごとに予測不能な値をフォームやヘッダーに埋め込み、状態を変える要求が自サイトから出たことをサーバーが確認できるようにする仕組み。
CSRF トークン からどのように防御しますか?
CSRF トークン に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。