奇特なブログ

「殊勝に値する行いや心掛け」を意味する、奇特な人になる為のブログです

自作フレームワーク:csrf.php

注意:
本プログラムは、
いわゆる徳丸本に書かれているセキュリティ対策の多くは反映してます。
しかし、高難易度の攻撃に耐えられる程の対策は出来ていないと思います。
本プログラムの流用は自由ですが、流用によって生じた損害については、
自己責任でお願いしてますので、その旨ご了承下さい。

自作フレームワークのトップページに戻る

現在、本クラスは使用されていません。



<?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);
}
}
}
?>