2013.11.2
CSRF対策という言葉自体は知っていたのですが、今まで上手く分かっていませんでした。自分なりにメモしておこうと思います。
おおざっぱに言うと、悪意あるサイトのスクリプトやリダイレクト処理によって、意図しない別サイトへ悪意ある操作をされる事を防ぐための対策です。
例えば、Aという悪意あるサイトへアクセスしたことにより、自分が善意あるBサイトに無駄な投稿したかのような形になってしまうとか、そういった感じです。
厳密性を考えるといろいろな方法があると思いますが、以下のような方法があったりします。
//フォームからPOSTされたかどうか判定
if($_SERVER['REQUEST_METHOD'] === 'POST'){
//CSRF対策(セッション値と隠しフォーム値を比較)
if($_POST['token'] !== $_SESSION['token']){
//値が違っていた場合は、不正な投稿と見なして処理を施す
echo "不正な投稿です";
exit;
}
}
?>
<!doctype html>
Document