OWASP ZAP 扫描时为什么总报 CSRF 漏洞? 夏侯红瑞 提问于 2026-03-17 22:38:20 阅读 64 安全 我在用 OWASP ZAP 扫描一个内部管理后台,每次扫描都提示存在 CSRF 漏洞,但我前端已经加了 X-CSRF-Token 请求头,后端也做了校验,为啥还会报? 尝试过在 ZAP 的“上下文”里设置 anti-CSRF token 字段为 X-CSRF-Token,但扫描结果还是没变。是我配置错了还是 ZAP 识别不到这个 header? Web安全测试 我来解答 赞 5 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 シ苗苗 Lv1 兄弟,这个问题我之前也卡过好久,说白了就是ZAP没识别到你配置的那个token。 问题出在配置位置上。你说的是在“上下文”里设置anti-CSRF token字段,但ZAP识别anti-CSRF token的地方其实不在那。正确的位置是:菜单栏 -> 工具 -> 会话属性 -> Anti-CSRF tokens,在这个页面把X-CSRF-Token加进去。 如果你已经加对了,但还是报,有几个可能的原因: 一是ZAP的主动扫描(Active Scan)在发送请求时根本没带这个header。它只会被动扫描时尝试读取你配置的token,主动扫描那块有时候会漏掉。 二是你加的是header,但ZAP默认只识别表单字段和cookie里的token。 解决办法有几个: 最直接的就是在ZAP的问题(Alerts)里找到那个CSRF漏洞,右键点开,选择“标记为误报”或者标记为“已确认”,这样下次扫描就不会再显示了。反正是内部后台,你自己知道有保护就行。 如果你想让ZAP真正识别,最好的办法是把token放在cookie里而不是header,ZAP对cookie支持最好。或者在扫描时用ZAP的API手动在请求里注入这个header。 还有一个偏方:如果你用的是ZAP的浏览器,直接用那个内置浏览器登录,ZAP会自动记录session和token,比手动配置靠谱。 实在不行就放弃抵抗吧,这种误报很常见的,扫出来标记掉就行,别纠结。 回复 点赞 2026-03-18 10:03 加载更多 相关推荐 2 回答 57 浏览 DAST扫描前端页面时为什么总报CSRF漏洞? 我用 OWASP ZAP 做 DAST 扫描,每次扫我们 React 项目都提示 CSRF 漏洞,但我们根本没用表单提交,全是 fetch 请求,而且后端也校验了 token 啊。 尝试过在请求头加 ... 一鸣 安全 2026-03-23 21:24:22 2 回答 96 浏览 OWASP ZAP扫描后怎么处理’信息泄露’的低风险漏洞? 用OWASP ZAP扫描公司登录页面时,总提示'信息泄露'低风险漏洞,但实际访问页面没问题 具体是说响应头里有Server字段暴露了nginx版本号,我按照教程在服务器加了header("Server... 慕容钰欣 安全 2026-02-03 18:27:31 2 回答 35 浏览 OWASP ZAP扫描时为什么总报“缺少安全头”? 我用 OWASP ZAP 扫描自己的前端项目,每次都会提示“Missing Security Headers”,比如 X-Content-Type-Options 和 X-Frame-Options。... 书生シ雨晨 安全 2026-03-11 11:07:18 2 回答 64 浏览 为什么OWASP ZAP无法拦截Angular应用的某些AJAX请求? 我在用OWASP ZAP测试Angular项目时发现,虽然设置了代理8080,大部分请求都能拦截,但文件上传和实时搜索的两个AJAX请求完全没反应。用F12看网络面板明明有这些请求,ZAP里却显示空白... 萌新.艳珂 安全 2026-02-03 21:34:30 2 回答 53 浏览 为什么OWASP Dependency-Check扫描我的React项目时总显示lodash有漏洞? 我用React开发项目时用了lodash,昨天跑OWASP扫描突然提示lodash有高危漏洞CVE-2023-30127。我明明在package.json里装的是最新的4.17.23版本啊,这是怎么回... Mr-利娟 安全 2026-02-16 16:26:24 1 回答 51 浏览 DAST扫描报React应用有XSS漏洞,但我用了JSX不是自动转义了吗? 我们最近用OWASP ZAP做DAST安全扫描,结果报了一个反射型XSS漏洞。可我明明在React里直接用JSX渲染用户输入,按理说React会自动转义啊,怎么还会被扫出来? 比如下面这段代码,只是把... 欧阳东宁 安全 2026-03-30 21:17:16 2 回答 89 浏览 W3af扫描React表单时没发现CSRF漏洞,但手动测试存在缺陷 我在用W3af扫描公司新开发的React应用时,发现所有表单请求都没有检测到CSRF漏洞,但手动测试时明显能用跨站请求伪造数据。代码里确实没做CSRF令牌验证,这是为什么啊? 比如这个用户资料更新组件... UX-淑涵 安全 2026-02-18 08:55:46 1 回答 63 浏览 前端做漏洞扫描时怎么处理XSS误报? 我们用 OWASP ZAP 扫描项目,结果报了一堆 XSS 风险,但很多其实是安全的。比如有个搜索框输入 <script> 后页面确实会显示出来,但我们已经用 DOMPurify 处理过了... ლ新杰 安全 2026-03-21 20:57:17 1 回答 55 浏览 前端项目做漏洞扫描时误报太多怎么办? 最近用 OWASP ZAP 扫我们 React 项目,扫出来一堆“跨站脚本”高危漏洞,但点进去看都是像 /api/user?id=123 这种正常接口,根本没渲染到页面上。我试过加 CSP 头、转义输... FSD-斯羽 安全 2026-03-16 04:45:22 1 回答 148 浏览 前端应急响应时如何快速定位XSS漏洞的攻击入口? 最近在处理一个紧急安全事件,发现有人利用表单提交功能注入了XSS脚本。我们用了OWASP ZAP扫描,但始终找不到具体漏洞点。前端代码里有个动态渲染的评论区,像这样: <div id="comm... 慕容昕彤 安全 2026-02-19 09:06:33
问题出在配置位置上。你说的是在“上下文”里设置anti-CSRF token字段,但ZAP识别anti-CSRF token的地方其实不在那。正确的位置是:菜单栏 -> 工具 -> 会话属性 -> Anti-CSRF tokens,在这个页面把X-CSRF-Token加进去。
如果你已经加对了,但还是报,有几个可能的原因:
一是ZAP的主动扫描(Active Scan)在发送请求时根本没带这个header。它只会被动扫描时尝试读取你配置的token,主动扫描那块有时候会漏掉。
二是你加的是header,但ZAP默认只识别表单字段和cookie里的token。
解决办法有几个:
最直接的就是在ZAP的问题(Alerts)里找到那个CSRF漏洞,右键点开,选择“标记为误报”或者标记为“已确认”,这样下次扫描就不会再显示了。反正是内部后台,你自己知道有保护就行。
如果你想让ZAP真正识别,最好的办法是把token放在cookie里而不是header,ZAP对cookie支持最好。或者在扫描时用ZAP的API手动在请求里注入这个header。
还有一个偏方:如果你用的是ZAP的浏览器,直接用那个内置浏览器登录,ZAP会自动记录session和token,比手动配置靠谱。
实在不行就放弃抵抗吧,这种误报很常见的,扫出来标记掉就行,别纠结。