我正在尝试为我通过 s3/cloudfront 提供的 html 文件设置 Content-Security-Policy header 。我正在使用基于 Web 的 AWS 控制台。每当我尝试添加标题时:
它似乎并不尊重它。我该怎么做才能确保提供此 header ?
最佳答案
我遇到了同样的问题(使用 S3/CloudFront),目前似乎无法轻松设置。
S3 有一个允许的 header 白名单,并且 Content-Security-Policy 不在其中。虽然您确实可以使用前缀 x-amz-meta-Content-Security-Policy,但这并没有帮助,因为浏览器不支持它。
我可以看到两个选项。
1) 您可以从 EC2 实例上的网络服务器提供 html 内容,并将其设置为另一个 CloudFront 源。不是一个很好的解决方案。
2) 将 CSP 作为元标记包含在您的 html 文档中:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src http://*.foobar.com 'self'">
...
这个选项没有被浏览器广泛支持,但它似乎适用于 Webkit 和 Firefox,所以当前的 Chrome、Firefox、Safari(和 IOS 7 Safari)似乎支持它。
我选择了 2,因为它是更简单/更便宜/更快的解决方案,我希望 AWS 将来会添加 CSP header 。
关于amazon-web-services - 是否可以在 Amazon S3 中设置 Content-Security-Policy header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19825294/