使用Token机制可有效防止CSRF攻击:先在表单中嵌入通过random_bytes生成并存于session的随机Token,提交时用hash_equals比对POST数据与session中的Token是否一致,校验通过后处理业务逻辑并可选清除Token,确保请求来自可信源。
防止 CSRF(跨站请求伪造)攻击,核心思路是验证请求是否来自可信的源。PHP 中最常用、有效的方法是使用 Token 机制:在表单中嵌入一个一次性令牌(Token),提交时在服务器端校验该 Token 是否合法。
每次展示表单前,生成一个唯一的随机 Token,并将其保存在 Session 中,同时以隐藏字段的形式插入到 HTML 表单里。
示例代码:
当表单提交后,服务器必须检查 POST 数据中的
Token 是否与 Session 中保存的一致。如果不一致或缺失,拒绝请求。
submit.php 校验示例:
为了确保 Token 机制真正有效,注意以下几点:
基本上就这些。只要每次提交都经过 Token 校验,就能有效阻断大多数 CSRF 攻击。不复杂但容易忽略细节。