CSRF防护 #

一、CSRF原理 #

跨站请求伪造攻击,攻击者诱导用户在已登录状态下执行非预期操作。

二、Token防护 #

2.1 生成Token #

php
<?php
session_start();
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));

2.2 表单中包含Token #

html
<input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>">

2.3 验证Token #

php
<?php
session_start();

if (!hash_equals($_SESSION['csrf_token'], $_POST['csrf_token'])) {
    die('CSRF验证失败');
}
php
<?php
session_set_cookie_params([
    'samesite' => 'Strict'
]);

四、总结 #

本章学习了CSRF防护,下一章将学习密码安全。

最后更新:2026-03-26