Mozilla 很高兴宣布,Firefox 90 版本将支持基于“元数据要求标头” 的获取功能Web 应用程序可以保护自己和用户免受各种跨源威胁。据报道,这种威胁涵盖了跨站点请求伪造(CSRF)、跨站点泄露(XS-Leaks)、投机性跨站点执行侧信道(Spectre)攻击。
其实跨站攻击背后涉及 Web 的基本安全问题。由于开放性,很难允许 Web 服务器端严格区分其应用程序(浏览器选项卡)或恶意(跨站点)应用程序的请求。
如上图所示,假设用户在 登录托管https://banking.com 银行网站,并开展了一些与网银相关的活动。
同时,恶意攻击者控制的网站也可以在不同的浏览器标签页面上打开和执行 https://attacker.com 恶意操作。
因此,在用户正常交互的过程中,网银 Web 服务器端可能会收到一些例外操作,但很难区分它是由用户自己或另一个标签页面上的恶意攻击代码发起的。
最终导致网银或常见 Web 应用程序服务器刚性接收任何操作,并允许发起相关攻击。
好消息是,从 Firefox 90 开始,Mozilla 将允许 Web 浏览器通过 HTTP 请首先获取元数据(Sec-Fetch-*),从而让 Web 服务器更好地区分同源 / 跨站攻击请求。
借助 Sec-Fetch-*附加上下文(支持 Dest、Mode、Site、以及 User 这四个要求标头),Web 服务器将能够拒绝或忽视恶意请求。
Fetch Metadate 可用于各种 Web 应用服务带来深度防御机制。此外 Firefox 将迅速推出新的网站隔离安全架构,以进一步解决上述问题。