内容安全策略:与错误消息相矛盾

时间:2017-12-26 10:15:45

标签: content-security-policy

  

拒绝加载媒体   ' 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

2 个答案:

答案 0 :(得分:0)

通过向有问题的资源添加/来修复,但它看起来很奇怪 - 为什么第二个指令允许没有存储的媒体?

答案 1 :(得分:0)

没有斜杠,CSP正在读取第一个指令,因为它允许一个特定的文件,而不是一个目录;通常这将是https://s3.amazonaws.com/file.js之类的东西。

然而,第二个指令,因为它是一个根域,被读作允许整个域(包括子域)。

这一切都取决于你想要的具体程度,CSP允许很多灵活性。您可以指定关键字,精确资源到文件名,目录或整个域。通常的做法往往是将整个域名列入白名单,但如果你确定自己不需要它,那么一点点具体就会受到伤害(直到它确实如此)。

你可以多读一点here in the W3 spec