require 'easy_csrf.php';
session_start();
<input type="hidden" name="<?= EasyCSRF::KEY_NAME ?>" value="<?= EasyCSRF::generate() ?>" />
if (! EasyCSRF::check($_POST[EasyCSRF::KEY_NAME])) { echo '送信されたデータが、なんかおかしいです'; die(); }
これだけでもCSRF対策になるけど、ちょっと不便な時があるよ。
なぜなら、generateを呼び出すたびに、新しいキーになるから。
だからリロードでpostデータを送ったり、
複数タブで操作したりするとNG判定されるよ。
それだと困る場合は、固定キーに改造してみよう!
generateのところを、キーを生成・保持する機能と、保持されたキーを返す機能に分ければいいかな。