缓存投毒攻击使用 HTTP 请求诱骗源站 Web 服务器响应有害资源,该资源与干净请求具有相同的缓存键。因此,被投毒的资源会被缓存并提供给其他用户。
像 Cloudflare 这样的内容分发网络(CDN)依赖缓存键将新请求与缓存资源进行比较。然后 CDN 决定是从缓存提供资源还是直接从源站 Web 服务器请求。
要深入了解与缓存投毒相关的风险和漏洞,请参阅以下资源:
检查源站 Web 服务器的缓存配置,确保您缓存的是静态文件,且不以任何方式依赖用户输入。要了解更多关于 Cloudflare 缓存的信息,请参阅:
攻击者可以利用 HTTP 标头将恶意内容注入缓存响应。例如,如果您的应用程序在响应正文中反映不受信任的标头值,攻击者可能利用此通过缓存执行跨站脚本(XSS)攻击。为降低此风险:
- 如果 HTTP 标头中的值不是缓存键的一部分,请勿依赖这些值。
- 不要在响应正文中包含不受信任的标头值。
Cloudflare 会缓存 GET 请求正文的内容,但它们不包含在缓存键中。GET 请求正文应被视为不受信任,且不应修改响应内容。如果 GET 正文可以更改响应内容,请考虑绕过缓存或使用 POST 请求。
为随时了解 Internet 安全威胁,Cloudflare 建议您定期监控 Web 安全公告。一些较受欢迎的公告包括: