1

問題が発生しましたが、解決策が見つかりません。問題は、ユーザーがページを開くと、このようにセキュリティ トークンが生成され、SESSION 配列に追加されることです。

$token = generate_csrf_token();
$_SESSION['tokens'][] = $token;

CSRF セキュリティの隠し入力として、フォーム送信でこの $token を使用します。さて、問題は、ユーザーがコメントを投稿した場合、コメントがこのように投稿された後、配列から $token を削除できることです

$token = $_POST['token'];

// comment posting process

$key = array_search($token, $_SESSION['tokens']);
unset($_SESSION['tokens'][$key]);

$_SESSION['tokens'][]しかし、ユーザーがコメントを投稿せずにページを終了した場合、どうすれば配列からその $token を削除できますか。削除しないと、配列内に未使用の $token が大量に発生する可能性があります。

4

2 に答える 2