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

tmb3ates  于 2023-04-04  发布在  Java
关注(0)|答案(1)|浏览(175)
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提供了块内联样式,我不想被阻止。从other sources开始,在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标签上,但它返回的内容是一样的。

ni65a41a

ni65a41a1#

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

相关问题