CSRF対策の例ととりあえず書いてみた。
前回、CSRFの対策について考えてみて
CSRF対策としてのトークンについて - purazumakoiの[はてなブログ]
まだ良くわかってないが半券のトークンにすれば
万が一 XSSでトークンが流出した時のことを考えると良いような気がする。
が半券だとちょっと複雑になるので、まずは簡単なものを書いてみた。
関数部分だけメモ <?php // 入力画面の呼び出し時に トークンを作る function fCreateToken() { // トークン生成 $token = hash( 'sha256', session_id() ); $_SESSION['token'] = $token; return $token; } // 確認画面表示時に、inputのhiddenにトークンを入れる function fReturnToken() { return $_SESSION['token']; } // 送信する処理の前に、最初に生成したトークンと、確認画面からPOSTしたトークンを照合する function fCheckToken($token) { // 照合 if(strlen($token) > 0 && strcmp( $_SESSION['original_token'], $token ) === 0 ){ return true; } return false; }