变化:原始响应标头和 CORS 利用

信息安全 网页浏览器 应用安全 标题 科尔斯
2021-09-06 08:56:39

最近 PortSwigger(Burp Suite 背后的人)发表了一篇博客文章,讨论与 CORS 错误配置相关的安全风险。

http://blog.portswigger.net/2016/10/exploiting-cors-misconfigurations-for.html

总而言之,该博客讨论了启用 CORS 的不安全方式,这可能允许恶意网站从目标站点读取数据。接近尾声时,博客谈到了一种涉及Vary: Origin标头的预防机制:

如果您查看 CORS 规范中的“实施注意事项”部分,您会注意到它指示开发人员在动态生成 Access-Control-Allow-Origin 标头时指定“Vary: Origin”HTTP标头。

Access-Control-Allow-Origin在动态生成标头(由客户端控制 )的情况下,我很难理解 Vary 标头如何帮助防止 CORS 攻击(使用缓存中毒的 XSS )。

1个回答

包含Vary: Origin标头以防止缓存很重要。标头表明响应在某种程度上依赖于源,因此不应从缓存中为任何其他源提供服务。如果缺少标头,则可能会发生缓存中毒攻击,如文章中通过反射自定义标头的 XSS 示例中所解释的那样。缺少的Vary标头本身不会造成漏洞。