X-Frame-Options

X-Frame-Options

所述X-Frame-OptionsHTTP 响应报头可以被用来指示一个浏览器是否应该被允许在一个以呈现页面<frame>,<iframe>或<object>。通过确保其内容未嵌入其他网站,网站可以使用此功能来避免 点击劫持 攻击。

只有当访问文档的用户使用浏览器支持时才提供附加的安全性X-Frame-Options

Header typeResponse header
Forbidden header nameno

句法

X-Frame-Options有三种可能的指示:

X-Frame-Options: DENY X-Frame-Options: SAMEORIGIN X-Frame-Options: ALLOW-FROM https://example.com/

指令

如果指定DENY,从其他站点加载时,不仅尝试在框架中加载页面失败,从同一站点加载时尝试这样做将失败。另一方面,如果指定SAMEORIGIN,只要包含在框架中的站点与为页面提供服务的站点相同,仍然可以在框架中使用该页面。

DENY无论站点尝试这样做,页面都不能显示在框架中。SAMEORIGIN该页面只能显示在与页面本身相同的源框架中。ALLOW-FROM_ uri_页面只能显示在指定原点的框架中。

例子

注意:设置元标记是没用的!例如,<meta http-equiv="X-Frame-Options" content="deny">没有效果。不要使用它!只有像下面的例子那样设置HTTP头X-Frame-Options才能工作。

配置 Apache

要配置 Apache X-Frame-Options为所有页面发送标题,请将其添加到您网站的配置中:

Header always append X-Frame-Options SAMEORIGIN

要配置 Apache 来设置X-Frame-Options拒绝,请将其添加到您网站的配置中:

Header set X-Frame-Options DENY

要配置 Apache 以将其设置X-Frame-OptionsALLOW-FROM特定主机,请将其添加到您网站的配置中:

Header set X-Frame-Options "ALLOW-FROM https://example.com/"

配置 nginx

要配置 nginx 发送X-Frame-Options头文件,请将其添加到您的 http,服务器或位置配置中:

add_header X-Frame-Options SAMEORIGIN;

配置 IIS

要配置 IIS 发送X-Frame-Options标题,请添加此站点的Web.config文件:

<system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ... </system.webServer>

配置 HAProxy

要配置 HAProxy 发送X-Frame-Options标题,请将其添加到前端,监听或后端配置中:

rspadd X-Frame-Options:\ SAMEORIGIN

产品规格

SpecificationTitle
RFC 7034HTTP Header Field X-Frame-Options

浏览器兼容性

FeatureChromeFirefoxEdgeInternet ExplorerOperaSafari
Basic Support4.03.6.9(Yes)8.010.504.0
ALLOW-FROM(No)18?8.0?(Yes)

FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)
ALLOW-FROM???????