X-Frame-Options

X-Frame-Options HTTP 響應頭可以用來指示瀏覽器是否允許在 <frame><iframe><embed><object> 中渲染頁面。網站可以使用它來避免 點選劫持 攻擊,方法是確保其內容不會嵌入到其他網站中。

只有當訪問文件的使用者使用支援 X-Frame-Options 的瀏覽器時,才會提供額外的安全性。

警告: Content-Security-Policy HTTP 頭有一個 frame-ancestors 指令,該指令 已棄用 支援瀏覽器的此標頭檔案。

標頭檔案型別 響應頭
禁止的標頭檔案名稱

語法

X-Frame-Options 有兩個可能的指令

http
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN

指令

如果您指定 DENY,那麼當從其他網站載入頁面時,瀏覽器不僅會嘗試在框架中載入頁面失敗,而且從同一網站載入頁面時,嘗試也會失敗。另一方面,如果您指定 SAMEORIGIN,則只要包含它的網站與提供頁面的網站相同,您仍然可以在框架中使用頁面。

DENY

無論嘗試執行此操作的站點是什麼,該頁面都無法在框架中顯示。

SAMEORIGIN

只有當所有祖先框架與頁面本身具有相同來源時,才能顯示該頁面。

ALLOW-FROM origin 已棄用

這是一個已棄用的指令。遇到包含此指令的響應頭的現代瀏覽器將完全忽略該標頭檔案。 Content-Security-Policy HTTP 標頭檔案有一個 frame-ancestors 指令,您應該使用它代替。

示例

警告:<meta> 元素中設定 X-Frame-Options(例如,<meta http-equiv="X-Frame-Options" content="deny">)無效,不應使用!X-Frame-Options 僅透過 HTTP 標頭檔案強制執行,如下面的示例所示。

配置 Apache

要配置 Apache 為所有頁面傳送 X-Frame-Options 標頭檔案,請將其新增到您網站的配置中

apacheconf
Header always set X-Frame-Options "SAMEORIGIN"

要配置 Apache 將 X-Frame-Options 設定為 DENY,請將其新增到您網站的配置中

apacheconf
Header set X-Frame-Options "DENY"

配置 Nginx

要配置 Nginx 傳送 X-Frame-Options 標頭檔案,請將其新增到您的 http、server 或 location 配置中

nginx
add_header X-Frame-Options SAMEORIGIN always;

您可以使用以下方法將 X-Frame-Options 標頭檔案設定為 DENY

nginx
add_header X-Frame-Options DENY always;

配置 IIS

要配置 IIS 傳送 X-Frame-Options 標頭檔案,請將其新增到您網站的 Web.config 檔案中

xml
<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 指令

js
const helmet = require("helmet");
const app = express();
app.use(
  helmet({
    xFrameOptions: { action: "sameorigin" },
  }),
);

規範

規範
HTML 標準
# the-x-frame-options-header

瀏覽器相容性

BCD 表格僅在瀏覽器中載入

另請參閱