You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React应用被Netsparker检出Web Cache Deception漏洞的响应规则咨询

Web Cache Deception漏洞场景响应方案

核心问题答案

  • 该场景下不能返回200状态码的空白页面,正确响应是返回404 Not Found(资源不存在)或400 Bad Request(非法请求),同时保留现有的Cache-Control: no-store, no-cache等防缓存头配置。
  • 你当前的200空白页逻辑正是扫描工具告警的触发原因:即使当前空白页无敏感信息,若后续路由逻辑调整,这类追加静态后缀的非法路径可能返回用户私有页面内容,搭配缓存服务器的激进后缀缓存策略就会引发真实的敏感信息泄露。

漏洞原理回顾

攻击者会获取站点动态页面链接,比如用户设置页地址https://example.com/settings.php,在末尾追加带静态文件扩展名的路径,伪装成静态样式表或图片资源。
攻击者将篡改后的链接发送给受害者,受害者访问时会携带自身Cookie。缓存服务器收到类似https://example.com/settings.php/stylesheet.css的请求时,会按URL后缀识别为静态样式表。如果缓存服务器开启了激进缓存策略,可能会忽略应用返回的Cache-Control头,对所有.css后缀的文件强制使用public缓存指令,即使用户私有页面内容也会被缓存给所有站点访问者,引发敏感数据泄露。

本次扫描的验证请求为:

https://app.com/myapp//ns.css

你当前返回的200响应符合漏洞的触发特征:即使返回空白页,也满足"动态路径追加静态后缀后返回200响应"的判定规则。

具体修复方案

1. 路由逻辑修复(双保险配置)

  • React应用层:所有不匹配的路由直接关联404页面,不要返回200状态码的兜底空白页。如果是SSR渲染的React项目,需要在服务端路由层直接设置404状态码;如果是CSR静态部署项目,需要在Web服务器层补充规则:
    • 先校验请求路径对应的静态资源是否真实存在,不存在的静态后缀请求直接返回404,不要转发到React入口的index.html
    • 新增路径规范化逻辑,自动清理路径中的双斜杠//,避免异常路径绕过校验

2. 缓存策略加固

  • 确认CDN/反向代理缓存服务器不会全局按URL后缀匹配缓存规则,仅对真实存放在静态资源目录下的文件开启后缀缓存。
  • 禁止缓存服务器覆盖text/html类型响应的Cache-Control头,所有动态页面的缓存规则完全遵循应用返回的头配置。

3. 额外校验(可选)

对需要登录的私有路径,新增请求头校验逻辑:如果请求的Accept头明确要求静态资源类型(如text/css、image/*),但实际返回内容为text/html,直接返回400错误拦截请求。

内容的提问来源于stack exchange,提问作者gene b.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 05:09:04