style-src阻止JavaScript编辑内联样式


Content-Security-Policy: default-src *; script-src 'self' 'unsafe-hashes'; style-src 'self' 'unsafe-hashes'
function pureFadeOut(elem){
var el = document.getElementById(elem);
el.style.opacity = 1;
(function fade() {
if ((el.style.opacity -= .02) < 0) {
el.style.display = "none";
} else {
requestAnimationFrame(fade);
}
setTimeout(() => {
var theelement = document.querySelector('#cookieConsentContainer');
if (theelement) {
theelement.remove();
};
}, 1350);
})();
};
<div class="cookieConsentContainer" id="cookieConsentContainer" style="opacity: 1; display: block;"></div>
<script src="purecookie.js"></script>

CSP提供了块内联样式,我不希望被阻止。从其他来源,在HTML部分,style属性应该是允许的,由于'unsafe-hashes',它似乎不工作根据控制台(Chrome)。

purecookie.js:79 Refused to apply inline style because it violates the following Content Security Policy directive: "style-src 'self' 'unsafe-hashes'. Either the 'unsafe-inline' keyword, a hash ('sha256-ocbYmzLZH1xplQZkplgRzBKXmnx+nXhqw2fRcEogPQ4='), or a nonce ('nonce-...') is required to enable inline execution.

因为我不能把什么Chrome推荐我到一个JavaScript文件直接。我确实把它放在script标签上,但它返回同样的东西。

参见https://www.w3.org/TR/CSP3/#unsafe-hashes-usage, 'unsafe-hash '旨在允许一些内联事件处理程序(属性)被允许用于遗留站点。在这种情况下,您将需要'unsafe-inline'或重写脚本代码。

将此'unsafe-inline' *添加到style-src中以获取:内容安全策略:default-src *;Script-src 'self' 'unsafe-hash ';Style-src 'self' 'unsafe-hash ' 'unsafe-inline' *

这将启用内联执行,但出于安全考虑不建议这样做。

你可以在这个链接找到有用的信息:CSP

相关内容

  • 没有找到相关文章

最新更新