如何允许托管在亚马逊上的网站嵌入iFrame?

时间:2016-06-18 21:06:48

标签: amazon-web-services iframe amazon-s3 x-frame-options

我对AWS相当缺乏经验,因此这可能是了解网站结构或网络主机之间错综复杂的问题。

我曾经有一个托管有HostMonster的网站,并且能够允许从另一个域的iFrame引用该网站。这是通过将ALLOW-FROM选项添加到x-frame-options来实现的。

该网站最近被移至AWS。它使用S3,EC2和Elastic Beanstalk。现在当我尝试嵌入网站时,我收到了这个错误:

  

拒绝展示' http://example.com'在一个框架,因为它设置   ' X型框架,选项'到' SAMEORIGIN'。

很明显,我必须设置此选项,但我不清楚如何这样做。

我发现了forum asking for support for X-Frame-Options。 AWS支持的响应确认S3当前不支持X-Frame-Options。

这是否意味着我运气不好或者我只是在咆哮错误的树?

我也调查了aws CORS header setting docs并试图允许我嵌入的原点,甚至尝试允许*来测试。

另外,我发现了GitHub for making S3 files public。我实现了他们在那里设置的策略和配置,但仍然得到相同的错误。

如果我似乎遗漏了任何重要的内容,请向我询问。就像我说的那样,我对网络开发很陌生,我仍然在想办法。

修改

正如所指出的那样,有趣的是返回带有X-Frame-Options的标题。这是我直接加载页面时得到的完整响应。

  

连接:保活

     

的Content-Type:text / html的;字符集= UTF-8

     

日期:2016年6月19日星期日00:31:37 GMT

     

服务器:Apache / 2.4.16(亚马逊)OpenSSL / 1.0.1k-fips mod_wsgi / 3.5 Python / 2.7.10

     

传输编码:分块

     

X框-选项:SAMEORIGIN

1 个答案:

答案 0 :(得分:0)

您必须在.ebextensions中包含enable_mod_deflate.conf文件,其设置为"标题始终取消设置X-Frame-Options":

enable_mod_deflate.conf

# mod_deflate configuration
<IfModule mod_deflate.c>
  <IfModule mod_headers.c>
   # Make surei proxies don't deliver the wrong content
   Header always unset X-Frame-Options  
  </IfModule>
</IfModule>