拒绝加载媒体 ' https://s3.amazonaws.com/my-public-bucket/file.txt' 因为它违反了以下内容安全策略指令: " media-src https://s3.amazonaws.com/my-public-bucket https://my-private-bucket.s3.amazonaws.com"
怎么可能?我可以加载例如https://my-private-bucket.s3.amazonaws.com/file.txt
答案 0 :(得分:0)
通过向有问题的资源添加/
来修复,但它看起来很奇怪 - 为什么第二个指令允许没有存储的媒体?
答案 1 :(得分:0)
没有斜杠,CSP正在读取第一个指令,因为它允许一个特定的文件,而不是一个目录;通常这将是https://s3.amazonaws.com/file.js
之类的东西。
然而,第二个指令,因为它是一个根域,被读作允许整个域(包括子域)。
这一切都取决于你想要的具体程度,CSP允许很多灵活性。您可以指定关键字,精确资源到文件名,目录或整个域。通常的做法往往是将整个域名列入白名单,但如果你确定自己不需要它,那么一点点具体就会受到伤害(直到它确实如此)。
你可以多读一点here in the W3 spec。