csrf保护php,防止PHP中的CSRF
小編典典
為了防止CSRF,您需要驗證一次令牌,該令牌已過POST,并與當前會話相關聯。類似以下內容。。。
在用戶請求刪除記錄的頁面上:
Confirm.php
session_start();
$token = isset($_SESSION['delete_customer_token']) ? $_SESSION['delete_customer_token'] : "";
if (!$token) {
// generate token and persist for later verification
// - in practice use openssl_random_pseudo_bytes() or similar instead of uniqid()
$token = md5(uniqid());
$_SESSION['delete_customer_token']= $token;
}
session_write_close();
?>
Do you really want to delete?
然后,要真正刪除記錄:
Confirm_save.php
session_start();
// validate token
$token = isset($_SESSION['delete_customer_token']) ? $_SESSION['delete_customer_token'] : "";
if ($token && $_POST['token'] === $token) {
// delete the record
...
// remove token after successful delete
unset($_SESSION['delete_customer_token']);
} else {
// log potential CSRF attack.
}
session_write_close();
?>
令牌應該很難猜測,對于每個刪除請求都是唯一的,只能通過$ _POST接受,并且在幾分鐘后過期(此示例中未顯示過期)。
2020-05-26
總結
以上是生活随笔為你收集整理的csrf保护php,防止PHP中的CSRF的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java海滩上有一,Java猴子分桃问题
- 下一篇: tp5视图里写原生php,tp5中使用原