前端发请求加了自定义头,后端还是报CSRF错误? ♫采涵 提问于 2026-03-25 17:21:16 阅读 45 安全 我在用 Axios 发请求时手动加了个 X-Requested-With: XMLHttpRequest,但后端(Laravel)还是返回 419 CSRF token mismatch。不是说只要带自定义请求头就能绕过 CSRF 检查吗? 我试过在中间件里打印请求头,确实收到了这个 header,但 Laravel 好像根本不认。是不是我理解错了什么? Token验证安全防护 我来解答 赞 8 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 爱学习的一茹 Lv1 你对 CSRF 的理解有点偏差。加自定义头并不能绕过 Laravel 的 CSRF 验证,这是个安全机制,不能这么轻易被规避的。 在 Laravel 里要解决这个问题,你需要确保正确设置了 CSRF token。最简单的办法就是在表单里加上 <meta name="csrf-token" content="{{ csrf_token() }}"> 然后在 axios 请求中配置: window.axios.defaults.headers.common['X-CSRF-TOKEN'] = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); 这样每次请求都会带上正确的 CSRF token。 顺便提醒一下,不要试图通过伪造请求头来绕过 CSRF 检查,这会带来安全隐患,比如恶意网站可能利用这个漏洞进行跨站请求伪造攻击。按照框架规范来做才是正道,虽然有时候会感觉麻烦,但为了安全值得这么做。 回复 点赞 2026-03-25 19:57 加载更多 相关推荐 2 回答 87 浏览 Session绑定CSRF Token后前端怎么正确发送? 我后端用Session存了CSRF Token,登录后返回给前端,但我每次提交表单时还是被拦截。是不是我发请求的方式不对? 我试过把token放在header里,也试过放在body里,但都失败了。后端... 一艺诺 安全 2026-02-24 20:56:21 2 回答 129 浏览 前端POST请求被漏洞扫描工具标记CSRF漏洞,但后端已加防伪cookie该怎么办? 我在开发登录功能时,前端用axios发送POST请求,后端已通过nginx设置了Csrf-Token cookie且验证了请求头中的token。但最近漏洞扫描工具提示"缺少CSRF防护",明明后端已经... 爱学习的欢欢 安全 2026-01-28 22:49:30 1 回答 76 浏览 设置 SameSite=Strict 的 Cookie 后,Vue 前端还能正常发送 CSRF Token 吗? 我在后端设置了带 SameSite=Strict 的 CSRF Cookie,但前端用 Vue 发请求时好像拿不到这个 Cookie,导致 CSRF Token 传不上去。我试过在 axios 请求里... 小志远 安全 2026-03-31 01:22:16 1 回答 69 浏览 前端如何正确设置CSRF Token到请求头中? 我们后端启用了CSRF防护,要求每个POST请求都必须带上 X-CSRF-Token 请求头。我在登录成功后把token存到了 localStorage 里,但在发起请求时总是被拦截,提示 token... 书生シ莉莉 安全 2026-03-13 15:29:20 2 回答 82 浏览 Vue项目CSRF防护时验证请求头总失败怎么办? 我在Vue项目里用axios发请求时设置了X-CSRF-Token头,但后端一直返回403错误。之前在登录接口成功获取到token并存到cookie里了,代码是这样的: <script> ... 秀丽 安全 2026-02-08 23:42:30 2 回答 101 浏览 CSRF防护中,为什么我的前端生成的Token无法被后端正确验证? 我按照教程给表单请求加了CSRF防护,前端用UUID生成token存到cookie和隐藏字段里,但后端验证时总提示不匹配。明明都按文档做了,但验证还是失败,哪里出问题了? 前端代码这样写的: // 生... 令狐采涵 安全 2026-02-08 23:07:32 2 回答 122 浏览 为什么我的Anti-CSRF Token在跨域请求时失效了? 我在单页应用里用JWT做Anti-CSRF防护,每次登录后把token存在cookie并带上自定义请求头。但调用支付接口时后端返回403,明明请求头里带了正确的token值。 尝试过在Express后... 百里玲玲 安全 2026-02-01 08:29:30 1 回答 203 浏览 CSRF Token在AJAX请求中失效怎么办?后端返回403错误 我在做用户资料更新功能时遇到了问题。后端要求所有POST请求必须携带CSRF Token,我按照常规做法在表单里加了隐藏字段_csrf,但用fetch提交时后端一直返回403。 尝试过把token放在... 宇文青燕 安全 2026-01-31 14:00:33 1 回答 82 浏览 前端如何在Vue中安全使用Nonce随机数防止CSRF攻击? 我在做登录功能时,后端要求每个请求带上一个Nonce随机数来防CSRF,但我试了几次都失败了。每次页面刷新Nonce就变了,但axios拦截器里拿不到最新的值,导致请求被拒绝。 我现在的做法是在组件里... Dev · 瑞瑞 安全 2026-03-26 05:43:25 1 回答 99 浏览 GET请求里放修改操作会被CSRF攻击吗? 我最近在做用户设置页面,不小心把“删除草稿”功能写成了GET请求,类似点个链接就删了。后来听说这样会有CSRF风险,但我不太确定是不是真的有问题? 比如下面这种写法: <a href="/api... Zz超霞 安全 2026-03-23 16:35:20
在 Laravel 里要解决这个问题,你需要确保正确设置了 CSRF token。最简单的办法就是在表单里加上
<meta name="csrf-token" content="{{ csrf_token() }}">然后在 axios 请求中配置:这样每次请求都会带上正确的 CSRF token。
顺便提醒一下,不要试图通过伪造请求头来绕过 CSRF 检查,这会带来安全隐患,比如恶意网站可能利用这个漏洞进行跨站请求伪造攻击。按照框架规范来做才是正道,虽然有时候会感觉麻烦,但为了安全值得这么做。