次のようなラインスタイルのページにimgタグがあります。
style="height:50px;width:180px;display:block;"
Imgタグはサードパーティのコントロールによって生成されているため、外部スタイルシートに移動できません。そこで、Chrome開発者ツールに表示されるハッシュをコピーしました。
Content-Security-Policyの一部は次のようになります。
style-src 'self' 'sha256-7kYG54iPGE/Vf+GFqobEwpF9bfCAVA/elCz7OiSmMl0=';
しかし、Chromeは引き続き次のメッセージでブロックします:
Refused to apply inline style because it violates the following Content Security Policy directive: "style-src 'self' 'sha256-7kYG54iPGE/Vf+GFqobEwpF9bfCAVA/elCz7OiSmMl0='". Either the 'unsafe-inline' keyword, a hash ('sha256-7kYG54iPGE/Vf+GFqobEwpF9bfCAVA/elCz7OiSmMl0='), or a nonce ('nonce-...') is required to enable inline execution.
ポリシーのハッシュは、エラーメッセージの必要なハッシュと一致します。 Chromeがまだそれをブロックしているのはなぜですか?
ありがとう...
Chrome(Firefox以外))では、'unsafe-hashes'
を明示的に許可する必要もあります。ハッシュだけを指定すると、スクリプトセクションとスタイルセクションにのみ適用され、属性には適用されないようです。 8.3。 "'unsafe-hashes'"の使用法 これで、CSPは次のようになります。
style-src 'self' 'unsafe-hashes' 'sha256-7kYG54iPGE/Vf+GFqobEwpF9bfCAVA/elCz7OiSmMl0=';
Chromeがこのように動作することを決定した理由)の詳細については、 このChromiumの問題 および このW3Cの問題 を参照してください。