技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

各种浏览器对X-Frame-Options响应头的响应

作者:admin    时间:2019-5-7 19:19:48    浏览:

X-Frame-Options响应头,可用于防止您的网站在<frame>,<iframe>或<object>中呈现。它有不同的选项,可以拒绝所有网站访问,可以仅允许来自同一来源访问,也可以允许来自特定来源访问。

本文着重介绍各种浏览器如何响应被X-Frame-Options阻止的内容,至于如何使用X-Frame-Options,可以看看文章后面的知识扩展:使用 X-Frame-Options,也可以参考文章《nginx设置X-Frame-Options的两种方法》、《IIS设置 X-Frame-Options 的方法》。

浏览器响应 - Firefox

Firefox

Firefox

Firefox在框架里显示空白而不渲染任何内容。

根本没有任何错误消息,除非您进入开发人员控制台,在那里您将看到消息:

X-Frame-Options拒绝加载:http://example.com/ 不允许跨源框架。

根据Mozilla文档页面:“在某些时候,帧中会显示某种错误消息。”

浏览器响应 - Chrome和Safari

Chrome

Chrome

与Firefox一样,框架里显示空白页面。

同样,如果您在控制台中查看,您将看到两个浏览器当前相同的错误消息:

拒绝在框架中显示'http://www.example.com/',因为它设置了'X-Frame-Options SAMEORIGIN'。

测试版本:Chrome 46和Safari 9。

浏览器响应 - IE8到IE11

Internet Explorer 11

Internet Explorer 11

Internet Explorer 显示错误消息。

其中框架内容通常已经呈现,并带有将框架内容打开到新窗口的链接:

此内容无法在一个框架中显示。为了保护您在本网站上输入的信息的安全性,此内容的发布者不允许它以框架形式显示。您可以尝试:在一个框架中打开此内容新窗户。

浏览器响应 - Edge

Edge浏览器也显示错误消息。

微软的Edge浏览器的工作方式与旧的Internet Explorer版本相同,但内容略有改动:

这个内容不能在一个框架中显示。这里应该有一些内容,但发布者不允许它显示在一个框架中。这有助于保护您可能进入的任何信息的安全性。试试这个:在新窗口中打开它。

结论

我总是使用Javascript将我的网站从框架中删除,但X-Frame-Options响应标头可以防止您的网站被框起而无需编写脚本。遗憾的是,大多数浏览器不像 Internet Explorer / Edge 那样显示明显的错误,以便用户可以轻松点击进入实际的网站。

知识扩展:使用 X-Frame-Options

X-Frame-Options 有三个值:

DENY

表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

SAMEORIGIN

表示该页面可以在相同域名页面的 frame 中展示。

ALLOW-FROM uri

表示该页面可以在指定来源的 frame 中展示。

换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。

配置 Apache

配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 'site' 的配置中:

Header always append X-Frame-Options SAMEORIGIN

配置 nginx

配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中:

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>

标签: 浏览器  X-Frame-Options  
  • IT热文
  • 站长推荐