X-Frame-Options 響應頭
注意:對於比此標頭提供的選項更全面的選項,請參閱 Content-Security-Policy 標頭中的 frame-ancestors 指令。
HTTP X-Frame-Options 響應頭 可用於指示瀏覽器是否應允許在 <frame>、<iframe>、<embed> 或 <object> 中呈現頁面。網站可以使用此功能來避免 點選劫持 攻擊,確保其內容不會嵌入到其他網站中。
只有在使用支援 X-Frame-Options 的瀏覽器訪問文件時,才能提供附加的安全保障。
語法
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
指令
DENY-
頁面無法在框架中顯示,無論嘗試這樣做的網站是哪個。不僅瀏覽器嘗試從其他網站載入頁面到框架中會失敗,從同一網站載入也會失敗。
SAMEORIGIN-
只有當所有祖先框架與頁面本身具有相同的源時,才能顯示頁面。只要將頁面包含在框架中的網站與提供該頁面的網站相同,您仍然可以在框架中使用該頁面。
ALLOW-FROM origin已廢棄-
這是一個過時的指令。遇到帶有此指令的響應頭的現代瀏覽器將完全忽略該標頭。HTTP
Content-Security-Policy標頭有一個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 將 X-Frame-Options 設定為 SAMEORIGIN,請將以下內容新增到您的伺服器配置中
import helmet from "helmet";
const app = express();
app.use(
helmet({
xFrameOptions: { action: "sameorigin" },
}),
);
規範
| 規範 |
|---|
| HTML # the-x-frame-options-header |
瀏覽器相容性
載入中…