X-Frame-Options 響應頭

注意:對於比此標頭提供的選項更全面的選項,請參閱 Content-Security-Policy 標頭中的 frame-ancestors 指令。

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

只有在使用支援 X-Frame-Options 的瀏覽器訪問文件時,才能提供附加的安全保障。

頭型別 響應頭
禁止請求頭

語法

http
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 標頭,請將以下內容新增到您的站點配置中

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

要使用 HelmetX-Frame-Options 設定為 SAMEORIGIN,請將以下內容新增到您的伺服器配置中

js
import helmet from "helmet";

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

規範

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

瀏覽器相容性

另見