<?php
/**
* CSRF対策クラス
*
* クロスサイトリクエストフォージェリ脆弱性の対策を行うクラス
*/
class csrf {
/**
* 第三者が知り得ない秘密情報(トークン)の値を取得する
*
*/
static public function get_token() {
return session_id();
}
/**
* トークンの値をチェックする
*
*/
static public function check_token() {
// トークン確認
if(true === isset($_POST['token'])) {
// hiddenからPOSTされたトークンとセッションIDが違う場合は不正な遷移
if(0 !== strcmp($_POST['token'], self::get_token())) {
throw new custom_exception('トークン値相違', 1);
}
} else {
// hiddenからPOSTされたトークンが未設定時も不正な遷移
throw new custom_exception('トークン値未設定', 1);
}
}
}
?>
Author:kitoku
「奇特」を目指しているITエンジニアです。ホームページ:http://www.kitoku-magic.net/