2

在某些Web應用程序我注意到有用於X-框架選項設置選項首像設置爲「拒絕拒絕」

X框,選擇X-框選項選項應該錯誤地添加了兩次)。

在這種情況下,將在瀏覽器服從於這樣報頭,因爲它是爲服從

X框-選項:DENY。

否則將它排除考慮爲無意義的這個頭選項「拒絕拒絕」無意義

如果服從,會發生什麼事的場景,如

X框選項:DENY SAMEORIGIN

回答

1

瀏覽器處理X-Frame-Options: DENY DENY就好像它只是X-Frame-Options: DENY

Safari以前的had a bug that caused it to ignore X-Frame-Options如果它有重複的值,並且Chrome繼承了the same bug。而且Firefox以前也是had pretty much the same bug

但是,它們都已經被修復了:它們的行爲與它們的值相同。

如果服從,會發生什麼事的場景,如

X-Frame-Options: DENY SAMEORIGIN

對於這種情況,what Mozilla ended up implementing(和Safari和Chrome結束了以下)是:

使用最嚴格的政策......如果構圖情況違反其中任何一項,則阻止負載

因此,X-Frame-Options: DENY SAMEORIGIN的瀏覽器行爲是DENY(最具限制性)。

因此,不幸的是,雖然沒有權威的規範指出如果頭部有多個值時所需的行爲是什麼 - 因爲the X-Frame-Options spec, RFC 7034實際上並沒有說明需求是什麼 - 實際上,當前的Safari/Chrome/Firefox行爲是預期的行爲。不知道IE/Edge是做什麼的,但是如果它與Safari/Chrome/Firefox不同,那麼這也是一個需要在IE/Edge中修復的bug。