CSRF トークン
対象の脆弱性:CSRF
攻撃者は CSRF の脆弱性をついて、攻撃をしてくることがあります。 今回はその対策に関する話です。
CSRF トークン
CSRF(クロスサイトリクエストフォージェリ)という攻撃・脆弱性があります。 これを解決する手段が CSRF トークンの利用です。
フレームワーク・ライブラリ
CSRF トークンの生成等を機能としても持つ、フレームワークやライブラリが存在します。それを利用しましょう。
予備知識
ここから予備知識です。読まなくても構いません。
事前知識:CSRF
生成・利用の流れ
以下の 1.
~ 3.
を繰り返します。
1. CSRF トークンを生成
十分な長さ(16 進数で 32 桁程度の)を持った疑似乱数を生成します。 この疑似乱数のことを CSRF トークンといいます。
この CSRF トークンは一旦サーバ側で保存しておきます。
2. HTML タグに付加
トークンを HTML の input タグ(hidden がオン)の value に付加させます。
<input type="hidden" name="csrf_token" value="ここにトークン" />
3. 回収・チェック
リクエストが送信されてきたら、サーバの保存した CSRF トークンと比較して、 そのリクエストに正しい CSRF トークンが付加されているかを確認します。