Laravel如何保护应用免受CSRF攻击?(原理和示例)

admin 百科 13
Laravel 默认通过 CSRF 中间件和 @csrf 指令防护 CSRF 攻击,原理是比对请求 token 与 session 中存储的随机加密 token 是否一致;AJAX 需手动设置 X-CSRF-TOKEN 请求头;api/、_ignition/、telescope/ 路由默认豁免验证。

Laravel如何保护应用免受CSRF攻击?(原理和示例)-第1张图片-佛山资讯网

Laravel 默认通过 CSRF 中间件和隐藏表单字段自动防护 CSRF 攻击,核心是验证每次非 GET 请求携带的 token 是否与服务端会话中存储的一致。

CSRF 保护原理

Laravel 在用户首次访问时生成一个随机、加密的 CSRF token,并存入当前 session。后续所有 POST、PUT、PATCH、DELETE 等非安全请求,都必须携带该 token(通常放在表单 hidden 字段或请求头中)。服务端收到请求后,比对提交的 token 和 session 中保存的是否匹配——不一致则拒绝请求,返回 419 状态码。

这个机制有效是因为:攻击者无法读取目标站点的响应内容(受同源策略限制),也就拿不到合法用户的 token,无法构造出带正确 token 的恶意请求。

表单中自动插入 CSRF token

在 Blade 模板中,使用 @csrf 指令即可插入隐藏字段:


  @csrf
  
  

渲染后等价于:

标签: php javascript laravel java jquery js 前端 ajax app axios 工具 s

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~