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 |
浏览器兼容性
加载中…