Firefox 90支持更安全的请求标头避免跨站攻击

Mozilla宣布将在Firefox 90中支持截取元资料请求标头(Fetch Metadata Request Headers),这是更为安全的请求标头,可让网页应用程序保护自己及其用户,免受各种跨来源攻击,包括跨站请求伪造(CSRF)、跨站泄露(XS-Leaks)以及跨站执行侧信道(Spectre)攻击。

Mozilla提到,跨站攻击背后的根本安全问题,在于网页的开放性,无法让网页应用程序服务器简单地区分源自于自身应用程序的请求,还是来自恶意跨站应用程序的请求。举例来说,当用户登录托管于https“:”//banking.com的银行网站,执行网络银行操作,此时另一个浏览器标签打开了由恶意攻击者控制网站https“:”// attacker.com,该网站也同时执行了一些恶意操作。

在这个情况下,当用户继续与银行网站交互,使得银行网页服务器接受部分操作,但不幸的是,银行网页服务器几乎无法控制谁发起操作,可能是用户,但也可能是来自另一个浏览器标签中的恶意网站攻击者。当银行服务器或是一般网页应用程序服务器,仅是简单地执行收到的动作指令,就可能遭受攻击。

而截取元资料请求标头是一个HTTP请求标头,提供了额外的请求上下文信息,这将让服务器可以根据请求的来源,以及使用资源的方法,来决定是否允许请求。使用该信息,服务器可以实施资源隔离政策,让外部网站仅能请求那些原本就用于共享,且适当使用的资源,这种方法可以缓解常见的跨站网页漏洞,诸如CSRF、跨站脚本攻击、时序攻击(Timing Attack)以及跨来源信息泄露等。

新的标头将以Sec-为前缀,无法使用JavaScript修改,HTTP请求标头Sec-Fetch-Site可让网页应用程序服务器,区分来自相对应应用程序的同源请求,以及来自攻击者网站的跨域请求。由于Sec-Fetch-*系列标头提供了额外的上下文,因此检查Sec-Fetch-*标头,网页应用程序服务器就可以拒绝或是忽略恶意请求。

总共有4个不同的Sec-Fetch-*标头,分别是Dest、Mode、Site和User,皆能用于保护网页应用程序及其用户,免受多种跨站攻击。官方提到,虽然Firefox马上就会推出新的网站隔离安全架构,来解决各种跨站攻击问题,但是仍然建议网页应用程序可以使用新支持的截取元资料请求标头,在网页应用程序加入深度防御机制。