X-Frame-Options
X-Frame-Options HTTP 響應頭可以用來指示瀏覽器是否允許在 <frame>、<iframe>、<embed> 或 <object> 中渲染頁面。網站可以使用它來避免 點選劫持 攻擊,方法是確保其內容不會嵌入到其他網站中。
只有當訪問文件的使用者使用支援 X-Frame-Options 的瀏覽器時,才會提供額外的安全性。
警告: Content-Security-Policy HTTP 頭有一個 frame-ancestors 指令,該指令 已棄用 支援瀏覽器的此標頭檔案。
語法
X-Frame-Options 有兩個可能的指令
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
指令
如果您指定 DENY,那麼當從其他網站載入頁面時,瀏覽器不僅會嘗試在框架中載入頁面失敗,而且從同一網站載入頁面時,嘗試也會失敗。另一方面,如果您指定 SAMEORIGIN,則只要包含它的網站與提供頁面的網站相同,您仍然可以在框架中使用頁面。
DENY-
無論嘗試執行此操作的站點是什麼,該頁面都無法在框架中顯示。
SAMEORIGIN-
只有當所有祖先框架與頁面本身具有相同來源時,才能顯示該頁面。
ALLOW-FROM origin已棄用-
這是一個已棄用的指令。遇到包含此指令的響應頭的現代瀏覽器將完全忽略該標頭檔案。
Content-Security-PolicyHTTP 標頭檔案有一個frame-ancestors指令,您應該使用它代替。
示例
警告: 在 <meta> 元素中設定 X-Frame-Options(例如,<meta http-equiv="X-Frame-Options" content="deny">)無效,不應使用!X-Frame-Options 僅透過 HTTP 標頭檔案強制執行,如下面的示例所示。
配置 Apache
要配置 Apache 為所有頁面傳送 X-Frame-Options 標頭檔案,請將其新增到您網站的配置中
Header always set X-Frame-Options "SAMEORIGIN"
要配置 Apache 將 X-Frame-Options 設定為 DENY,請將其新增到您網站的配置中
Header set X-Frame-Options "DENY"
配置 Nginx
要配置 Nginx 傳送 X-Frame-Options 標頭檔案,請將其新增到您的 http、server 或 location 配置中
add_header X-Frame-Options SAMEORIGIN always;
您可以使用以下方法將 X-Frame-Options 標頭檔案設定為 DENY
add_header X-Frame-Options DENY always;
配置 IIS
要配置 IIS 傳送 X-Frame-Options 標頭檔案,請將其新增到您網站的 Web.config 檔案中
<system.webServer>
…
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
…
</system.webServer>
有關更多資訊,請參見 Microsoft 支援文章,瞭解如何使用 IIS Manager 使用者介面設定此配置。
配置 HAProxy
要配置 HAProxy 傳送 X-Frame-Options 標頭檔案,請將其新增到您的前端、監聽或後端配置中
rspadd X-Frame-Options:\ SAMEORIGIN
或者,在新版本中
http-response set-header X-Frame-Options SAMEORIGIN
配置 Express
您可以使用 Helmet 來配置 Express 應用程式 在舊瀏覽器上設定 舊版 X-Frame-Options 標頭檔案。
警告: 建議使用 Content-Security-Policy HTTP 標頭檔案以及 frame-ancestors 指令代替。
要使用 Helmet 設定 X-Frame-Options,請將以下內容新增到您的伺服器配置以設定 SAMEORIGIN 指令
const helmet = require("helmet");
const app = express();
app.use(
helmet({
xFrameOptions: { action: "sameorigin" },
}),
);
規範
| 規範 |
|---|
| HTML 標準 # the-x-frame-options-header |
瀏覽器相容性
BCD 表格僅在瀏覽器中載入