如何允许我的网站嵌入iframe?

时间:2017-03-07 15:10:16

标签: iis iframe localhost x-frame-options

我有一个托管在外部服务器上的站点,我希望能够从我的本地开发环境(localhost)运行它(在iframe中)。不幸的是,当我尝试使用iframe加载页面时,我在帧内容中收到“此内容无法在框架中显示”消息。我该如何解决这个问题?

使用iframe的本地网站是经典的asp,而托管在外部服务器上的网站是MVC4。我只是在尝试使用iframe MVC4网络应用时遇到错误。当我尝试使用与MVC4应用程序位于同一服务器(同一域)的经典asp站点时,我没有错误。

2 个答案:

答案 0 :(得分:1)

原因是使用SuppressXFrameOptionsHeader来确保XFrameOptionsHeader设置不会被自动覆盖。

答案 1 :(得分:0)

根据Mozilla Developer Network<frame>, <iframe> or <object>元素支持三种选项:

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

第一个和最后一个绝对不是你需要的。 我尝试使用本地服务器访问另一个本地服务器:

X-Frame-Options: ALLOW-FROM http://localhost/

但是我收到了回复:'allow-from http://localhost/' is not a recognized directive. The header will be ignored.

它之所以有效,是因为标题被忽略了,但你必须评估这是否适合你的网站。在这种情况下,要求您的服务器不发送此标头会更简单。但只有了解了项目的后果才能做到。

IIS 上,可以通过web.config执行以下操作:

<system.webServer>
 <httpProtocol>
  <customHeaders>
    <remove name="X-Frame-Options" />
  </customHeaders>
 </httpProtocol>
</system.webServer>

对于 Apache ,请参阅this topic

请记住, 由您的网络浏览器来支持标题 。 Mozilla甚至表示:as:

  

仅当访问文档的用户使用支持X-Frame-Options的浏览器时,才会提供添加的安全性。

我认为Edge比Webkit更严格这个规则。