【发布时间】:2016-06-18 21:06:47
【问题描述】:
我对 AWS 相当缺乏经验,因此这可能是理解网站结构或网络主机之间错综复杂的问题。
我曾经有一个使用 HostMonster 托管的网站,并且能够允许从另一个域上的 iFrame 引用该网站。这是通过将 ALLOW-FROM 选项添加到 x-frame-options 来实现的。
该站点最近已移至 AWS。它使用 S3、EC2 和 Elastic Beanstalk。现在,当我尝试嵌入该站点时,出现此错误:
拒绝在框架中显示“http://example.com”,因为它设置了 'X-Frame-Options' 到 'SAMEORIGIN'。
似乎很明显我必须设置此选项,但我不清楚如何设置。
我找到了这个forum asking for support for X-Frame-Options。 AWS 支持部门的回复确认 S3 当前不支持 X-Frame-Options。
这是否意味着我运气不好,或者我只是在找错树?
我还查看了aws CORS header setting docs 并尝试允许我从中嵌入的来源,甚至尝试允许 from * 进行测试。
另外我发现了这个GitHub for making S3 files public。我实施了他们在那里设置的策略和配置,但仍然遇到相同的错误。
如果我似乎遗漏了任何重要的内容,请向我询问。就像我说的那样,我对 Web 开发非常陌生,并且仍在解决问题。
编辑:
正如所指出的,有趣的是,带有 X-Frame-Options 的标头完全被返回。这是我直接加载页面时得到的完整响应。
连接:保持活动状态
内容类型:文本/html;字符集=utf-8
日期:2016 年 6 月 19 日星期日 00:31:37 GMT
服务器:Apache/2.4.16 (Amazon) OpenSSL/1.0.1k-fips mod_wsgi/3.5 Python/2.7.10
传输编码:分块
X-Frame-Options:SAMEORIGIN
【问题讨论】:
-
你也在做一些猜测。不要猜测。
Refused to display 'http://example.com' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.在加载站点时查看响应标头,而不是在 iframe 中。这个错误似乎暗示标题 is 被设置,所以第一个问题是“真的吗?”和“如何?” -
有趣的地方。我想这将是个好消息,这意味着它是受支持的,我只是不知道如何配置它。我已将响应标头发布为对原始问题的编辑。
-
所以,这就是 EC2,您基本上可以在其中做任何您需要的事情。该限制仅适用于 S3。
-
我对这里的架构不是很清楚。在另一个开发人员配置了所有内容后,我继承了该站点。我可以看到我们在 EC2 上运行了一些实例,但我还在 S3 下看到了一个带有站点名称的存储桶。
-
@mkatic 请让我知道在哪里可以应用 .ebextensions 中的更改,我真的很感激
标签: amazon-web-services iframe amazon-s3 x-frame-options