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馬上就會推出新的網站隔離安全架構,來解決各種跨站攻擊問題,但是仍然建議網頁應用程式可以使用新支援的擷取元資料請求標頭,在網頁應用程式加入深度防禦機制。

熱門新聞

Advertisement