Laravel中如何配置表单安全令牌以避免CSRF攻击?

2026-05-03 00:182阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1195个文字,预计阅读时间需要5分钟。

Laravel中如何配置表单安全令牌以避免CSRF攻击?

由于 Laravel 默认启用全局 CSRF 保护,所有使用 POST、PUT、PATCH、DELETE 等请求方法的数据提交都需要携带有效的 CSRF token。如果中间件 VerifyCsrfToken 检测到没有有效的 CSRF token,将直接返回 419 页面。这不是配置漏洞,而是框架的安全策略默认行为。

常见错误现象:
• 提交自定义 HTML 表单(没用 Blade)时 419
• AJAX 请求没带 X-CSRF-TOKEN 头,返回 419 或 403
• 在 Vue/React 单页应用中复用 Laravel 后端,token 过期或未刷新

  • Blade 模板里必须写 @csrf(它会生成隐藏 input:<input type="hidden" name="_token" value="...">
  • AJAX 请求需从 <meta name="csrf-token" content="..."> 读取值,并设请求头 X-CSRF-TOKEN
  • 不要手动拼接 _token 值——session 中的 token 是绑定 session ID 的,硬编码会失效

VerifyCsrfToken 中间件怎么排除特定路由

有些接口本就不该走 CSRF 校验,比如 Webhook 接收地址、API 端点(尤其用 API Token 或 JWT 认证时)。Laravel 允许白名单排除,但得小心路径匹配逻辑。

阅读全文

本文共计1195个文字,预计阅读时间需要5分钟。

Laravel中如何配置表单安全令牌以避免CSRF攻击?

由于 Laravel 默认启用全局 CSRF 保护,所有使用 POST、PUT、PATCH、DELETE 等请求方法的数据提交都需要携带有效的 CSRF token。如果中间件 VerifyCsrfToken 检测到没有有效的 CSRF token,将直接返回 419 页面。这不是配置漏洞,而是框架的安全策略默认行为。

常见错误现象:
• 提交自定义 HTML 表单(没用 Blade)时 419
• AJAX 请求没带 X-CSRF-TOKEN 头,返回 419 或 403
• 在 Vue/React 单页应用中复用 Laravel 后端,token 过期或未刷新

  • Blade 模板里必须写 @csrf(它会生成隐藏 input:<input type="hidden" name="_token" value="...">
  • AJAX 请求需从 <meta name="csrf-token" content="..."> 读取值,并设请求头 X-CSRF-TOKEN
  • 不要手动拼接 _token 值——session 中的 token 是绑定 session ID 的,硬编码会失效

VerifyCsrfToken 中间件怎么排除特定路由

有些接口本就不该走 CSRF 校验,比如 Webhook 接收地址、API 端点(尤其用 API Token 或 JWT 认证时)。Laravel 允许白名单排除,但得小心路径匹配逻辑。

阅读全文