為了防止PHP Cookie被篡改,您可以采取以下幾種方法:
使用安全的連接(HTTPS):確保您的網站在傳輸數據時使用SSL/TLS加密。這樣可以確保數據在傳輸過程中不會被截獲和篡改。
設置HttpOnly屬性:將HttpOnly屬性設置為True,可以防止客戶端腳本訪問Cookie,從而降低被惡意JavaScript篡改的風險。
setcookie('name', 'value', [
'expires' => time() + 60 * 60 * 24 * 30,
'path' => '/',
'httponly' => true
]);
setcookie('name', 'value', [
'expires' => time() + 60 * 60 * 24 * 30,
'path' => '/',
'secure' => true
]);
setcookie('name', 'value', [
'expires' => time() + 60 * 60 * 24 * 30,
'path' => '/',
'samesite' => 'Strict' // 或者 'Lax'
]);
// 創建一個簽名
$secret_key = 'your-secret-key';
$cookie_value = 'your-cookie-value';
$signature = hash_hmac('sha256', $cookie_value, $secret_key);
// 設置帶有簽名的Cookie
setcookie('name', $cookie_value . '.' . $signature, [
'expires' => time() + 60 * 60 * 24 * 30,
'path' => '/'
]);
// 驗證簽名
$cookie_parts = explode('.', $_COOKIE['name']);
if (hash_hmac('sha256', $cookie_parts[0], $secret_key) === $cookie_parts[1]) {
// Cookie值未被篡改
} else {
// Cookie值已被篡改,拒絕訪問或采取其他措施
}
通過采取這些措施,您可以大大降低PHP Cookie被篡改的風險。