1 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個贊
當(dāng)您刷新頁面時,該函數(shù)created_csrf_token會再次觸發(fā),從而更改 CSRF 令牌。
你可以確定范圍。例如
<?php
function csrf_token() {
? ? return bin2hex(random_bytes(35));
}
function create_csrf_token() {
? ? if (isset($_SESSION['csrf_token'])) {
? ? ? ? return $_SESSION['csrf_token'];
? ? }
? ? $token = csrf_token();
? ? $_SESSION['csrf_token'] = $token;
? ? $_SESSION['csrf_token_time'] = time();
? ? return $token;
}
function csrf_token_tag() {
? ? $token = create_csrf_token();
? ? return '<input type="hidden" name="csrf_token" value="' . $token . '">';
}
$csrf_token = csrf_token_tag();
?>
<form action="" method="post">
? ? ...
? ? <?= $csrf_token; ?>
</form>
<form action="" method="post">
? ? ...
? ? <?= $csrf_token; ?>
</form>
將 isset 添加到 中將create_csrf_token檢查是否設(shè)置了 CSRF 令牌,并返回現(xiàn)有令牌,而不是創(chuàng)建新令牌。
不過,您可能想添加一些邏輯,以便在大約 5 分鐘后創(chuàng)建一個新的 CSRF 令牌。
- 1 回答
- 0 關(guān)注
- 121 瀏覽
添加回答
舉報