csrf保护php,防止PHP中的CSRF
小編典典
為了防止CSRF,您需要驗(yàn)證一次令牌,該令牌已過POST,并與當(dāng)前會話相關(guān)聯(lián)。類似以下內(nèi)容。。。
在用戶請求刪除記錄的頁面上:
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();
?>
令牌應(yīng)該很難猜測,對于每個刪除請求都是唯一的,只能通過$ _POST接受,并且在幾分鐘后過期(此示例中未顯示過期)。
2020-05-26
總結(jié)
以上是生活随笔為你收集整理的csrf保护php,防止PHP中的CSRF的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java海滩上有一,Java猴子分桃问题
- 下一篇: matlab不显示变量,Matlab空间