我对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
答案 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>