跳转到内容
搜索文档

避免 Web 缓存投毒

最后更新 查看 MarkdownAgent 设置

缓存投毒攻击使用 HTTP 请求诱骗源站 Web 服务器响应有害资源,该资源与干净请求具有相同的缓存键。因此,被投毒的资源会被缓存并提供给其他用户。

像 Cloudflare 这样的内容分发网络(CDN)依赖缓存键将新请求与缓存资源进行比较。然后 CDN 决定是从缓存提供资源还是直接从源站 Web 服务器请求。

了解缓存投毒

要深入了解与缓存投毒相关的风险和漏洞,请参阅以下资源:

仅缓存真正静态的文件

检查源站 Web 服务器的缓存配置,确保您缓存的是静态文件,且不以任何方式依赖用户输入。要了解更多关于 Cloudflare 缓存的信息,请参阅:

不要信任 HTTP 标头中的数据

攻击者可以利用 HTTP 标头将恶意内容注入缓存响应。例如,如果您的应用程序在响应正文中反映不受信任的标头值,攻击者可能利用此通过缓存执行跨站脚本(XSS)攻击。为降低此风险:

  • 如果 HTTP 标头中的值不是缓存键的一部分,请勿依赖这些值。
  • 不要在响应正文中包含不受信任的标头值。

不要信任 GET 请求正文

Cloudflare 会缓存 GET 请求正文的内容,但它们不包含在缓存键中。GET 请求正文应被视为不受信任,且不应修改响应内容。如果 GET 正文可以更改响应内容,请考虑绕过缓存或使用 POST 请求。

监控 Web 安全公告

为随时了解 Internet 安全威胁,Cloudflare 建议您定期监控 Web 安全公告。一些较受欢迎的公告包括:

这篇文档对您有帮助吗?