Amazon web services 使用Meteor浏览器策略包Alloworiginfollal for AWS可在http站点上工作,但不能在https上工作

Amazon web services 使用Meteor浏览器策略包Alloworiginfollal for AWS可在http站点上工作,但不能在https上工作,amazon-web-services,https,amazon-s3,meteor,Amazon Web Services,Https,Amazon S3,Meteor,因此,我们使用Meteor浏览器策略包,并使用AmazonS3存储内容 在服务器上,我们已按如下方式设置浏览器策略: BrowserPolicy.content.allowOriginForAll('*.amazonaws.com'); BrowserPolicy.content.allowOriginForAll('*.s3.amazonaws.com'); 当访问我们的http://站点时,这在本地开发人员和生产环境中都能很好地工作。但是,当使用https://地址访问我们的站点时,AWS

因此,我们使用Meteor浏览器策略包,并使用AmazonS3存储内容

在服务器上,我们已按如下方式设置浏览器策略:

BrowserPolicy.content.allowOriginForAll('*.amazonaws.com');
BrowserPolicy.content.allowOriginForAll('*.s3.amazonaws.com');
当访问我们的http://站点时,这在本地开发人员和生产环境中都能很好地工作。但是,当使用https://地址访问我们的站点时,AWS内容不再通过此策略

控制台上出现以下错误

Refused to load the image 'http://our-bucket-name.s3.amazonaws.com/asset-stored-in-s3.png' because it violates the following Content Security Policy directive: "img-src data: 'self' *.google-analytics.com *.zencdn.net *.filepicker.io *.uservoice.com *.amazonaws.com *.s3.amazonaws.com".
正如您所看到的,浏览器策略中还允许使用其他一些源代码,这些代码在http和https中似乎都可以正常工作。AWS S3是唯一失败的

我试过Chrome、Firefox和Safari,它们都有相同的问题


发生了什么事?

我可能没有这个问题的确切答案,但我有一些社区可能会觉得有用的信息

首先,你应该避免上菜。我不清楚这是否会引发浏览器策略警报,但无论如何你都不应该这么做。最简单的解决方案是在url中使用或只显式指定
https

其次,我也认为通配符的工作方式类似于一个函数。但是,有人告诉我,它的工作方式与ssl证书规则相同,即适用于所有子域或特定子域。换句话说,
*.example.com
www.example.com
是有效的,但
*.foo.example.com
没有意义。我认为您希望明确地添加您的bucket,如下所示:

BrowserPolicy.content.allowOriginForAll('our-bucket-name.s3.amazonaws.com')

除非你真的想信任amazonaws.com的所有人,否则我可能没有这个问题的确切答案,但我有一些社区可能会觉得有用的信息

首先,你应该避免上菜。我不清楚这是否会引发浏览器策略警报,但无论如何你都不应该这么做。最简单的解决方案是在url中使用或只显式指定
https

其次,我也认为通配符的工作方式类似于一个函数。但是,有人告诉我,它的工作方式与ssl证书规则相同,即适用于所有子域或特定子域。换句话说,
*.example.com
www.example.com
是有效的,但
*.foo.example.com
没有意义。我认为您希望明确地添加您的bucket,如下所示:

BrowserPolicy.content.allowOriginForAll('our-bucket-name.s3.amazonaws.com')

除非你真的想信任所有的
amazonaws.com

,否则有几个问题:你在某些浏览器中得到了这些,而不是在其他浏览器中?您是否使用协议相对url?这真的是你看到的错误吗?例如,你是通过https访问的,但网站使用的是http url?对不起,我应该说我在Chrome、Firefox和Safari中尝试过这个,我在所有浏览器中都得到了相同的结果。是的,这就是我看到的错误,我们正在尝试使用http URL加载s3数据。我将尝试通过https访问s3 bucket项,看看是否有帮助。几个问题:您在某些浏览器中得到了这些信息,而在其他浏览器中没有?您是否使用协议相对url?这真的是你看到的错误吗?例如,你是通过https访问的,但网站使用的是http url?对不起,我应该说我在Chrome、Firefox和Safari中尝试过这个,我在所有浏览器中都得到了相同的结果。是的,这就是我看到的错误,我们正在尝试使用http URL加载s3数据。我将尝试通过https访问s3 bucket项,看看是否有帮助。