CSRF対策のためフォーム内でトークンを生成し、header関数でエラーページへ飛んだ後に再び最初のフォーム画面に戻ると$_SESSIONに保存した値が消えてしまいます。$_SESSIONに値を保持したままにするにはどうすれば良いでしょうか。
form.php(フォームの入力ファイル)
// セッションIDを変更 session_regenerate_id(TRUE); // CSRF対策の固定トークンを生成 if (!isset($_SESSION['ticket'])) { // セッション変数にトークンを代入 $_SESSION['ticket'] = sha1(uniqid(mt_rand(), TRUE)); } // エラーの場合 header("Location: https://error"); exit();
※ブラウザの戻るボタンを押してエラーページからフォームページへ戻ると$_SESSION['ticket'] が空になっている。
※フォームページで再読み込みすると$_SESSION['ticket'] に値が入る。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。