最新版本的Chrome忽略了我的CSP策略。我今天决定重新创建该策略以尝试调试原因,但是从下面的错误中可以看出,Chrome建议我添加CSP中已经存在的哈希值(请参见 sha256-idz8mDU5fJ8lJuEwY6hbkXVde / nqBBjQE / u5rxw1HUk = < / strong>):
Refused to apply inline style because it violates the following Content Security Policy directive: "style-src 'self' https://pro.fontawesome.com/ 'sha256-LpfmXS+4ZtL2uPRZgkoR29Ghbxcfime/CsD/4w5VujE=' 'sha256-F+21FF3QOEHS5CNuMQEs3Q+LB0uULZF9DODEYnH/mMQ=' 'sha256-5uIP+HBVRu0WW8ep6d6+YVfhgkl0AcIabZrBS5JJAzs=' 'sha256-nK6A3vwzvwoN92MnHZrWtylYkYmW1jCQgTqWKQJNBMI=' 'sha256-idz8mDU5fJ8lJuEwY6hbkXVde/nqBBjQE/u5rxw1HUk='". Either the 'unsafe-inline' keyword, a hash ('sha256-idz8mDU5fJ8lJuEwY6hbkXVde/nqBBjQE/u5rxw1HUk='), or a nonce ('nonce-...') is required to enable inline execution.
这在Firefox和Safari中正常运行,所以我认为我的政策中有某些内容导致Chrome停止读取值?
.htaccess文件的内容为:
Header set Content-Security-Policy "default-src 'none'; connect-src 'self'; font-src 'self' https://pro.fontawesome.com/; frame-src 'self'; img-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' https://pro.fontawesome.com/ 'sha256-LpfmXS+4ZtL2uPRZgkoR29Ghbxcfime/CsD/4w5VujE=' 'sha256-F+21FF3QOEHS5CNuMQEs3Q+LB0uULZF9DODEYnH/mMQ=' 'sha256-5uIP+HBVRu0WW8ep6d6+YVfhgkl0AcIabZrBS5JJAzs=' 'sha256-nK6A3vwzvwoN92MnHZrWtylYkYmW1jCQgTqWKQJNBMI=' 'sha256-idz8mDU5fJ8lJuEwY6hbkXVde/nqBBjQE/u5rxw1HUk=';"
任何建议都将不胜感激。
答案 0 :(得分:2)
我认为此资源可以回答您的问题:
https://bugs.chromium.org/p/chromium/issues/detail?id=546106
示例中阻止的样式是样式中的样式 属性,Chrome仅在以下情况下在样式属性中应用样式 在“ style-src”中设置了“ unsafe-inline”。 Safari的行为类似,但 如果样式与“ style-src”中的哈希匹配,则Firefox会应用样式。
CSP规范仅为以下项定义哈希和随机数异常 和元素,不适用于样式和脚本 属性,因此Chrome的行为似乎符合规范。但是 控制台中生成的错误消息不正确(并且令人困惑)。
从外观上看,Chrome浏览器遵循CSP规范。我遇到了内联样式的相同问题,并且看到了与您相同的响应,匹配了sha256哈希!我的解决方案是删除内联样式并将其添加到CSS中,以完全避免内联样式。
答案 1 :(得分:0)
控制台登录时:
拒绝应用内联样式,因为它违反了以下规定 内容安全策略指令:“ style-src'self' 'sha256-tLBf5MoZ1LfLjLmXgREJmfznfoX6mUwoWQJnC30N6JI ='。要么 'unsafe-inline'关键字,一个哈希 ('sha256-tLBf5MoZ1LfLjLmXgREJmfznfoX6mUwoWQJnC30N6JI =')或随机数 (“ nonce -...”)才能启用内联执行。
解决方案是添加'unsafe-hashes'
,就像这样:style-src 'self' 'unsafe-hashes' 'sha256-tLBf5MoZ1LfLjLmXgREJmfznfoX6mUwoWQJnC30N6JI='
。
请参见'unsafe-hashes'
指令:https://github.com/LuminosoInsight/python-ftfy