缓存欺骗——动态页面被误当静态资源缓存
缓存欺骗——动态页面被误当静态资源缓存摘要:Web缓存欺骗(Web Cache Deception)利用缓存服务器对URL路径的解析差异,将包含敏感用户动态内容的页面(如/home)加上静态文件后缀(/home.css)后,被缓存系统当作可公开的静态资源保留。其他用户访问该URL时,就会看到前一个用户的个人信息。本文分析攻击手法及防御:规范化路径、禁用参数缓存、使用Cache-Control: private。关键词:黑客网站攻击;缓存欺骗;渗透测试;CDN安全;隐私泄露一、引言CDN和反向代理为了提高性能,会缓存静态文件。如果攻击者访问https://victim.com/user/dashboard.css,而后端实际处理/user/dashboard页面(返回HTML),但缓存服务器看到.css后缀就缓存了该响应。之后任何用户访问dashboard.css都会看到原始受害者的页面内容,导致信息泄露。二、缓存欺骗原理[*]缓存服务器根据路径后缀(.js/.css/.jpg)判断是否缓存。
[*]后端应用忽略后缀,返回用户特定的动态内容。
[*]攻击者诱使受害者访问带有伪造后缀的敏感URL,缓存该响应;然后攻击者自己或其他用户访问该URL即可获得缓存的内容。
三、防御措施
[*]URL规范化:拒绝或重写带有静态后缀但实际无静态文件的请求。
[*]设置合理的缓存规则:仅对已知静态目录(如/static/)启用缓存。
[*]敏感页面强制Cache-Control: private, no-cache。
[*]禁用查询参数缓存:某些缓存系统可配置忽略后缀,仅依赖Content-Type。
四、总结缓存欺骗漏洞源于前后端对URL解析不一致。防御核心:精准控制缓存策略,敏感内容永不公开缓存。
页:
[1]