Javascript 内容安全策略为一个源启用内联样式

Javascript 内容安全策略为一个源启用内联样式,javascript,content-security-policy,Javascript,Content Security Policy,我正在使用第三方外部源文件: var s1 = document.createElement("script"), s0 = document.getElementsByTagName("script")[0]; s1.async = true; s1.src = 'https://some_external_source.com'; s1.charset = 'UTF-8'; s1.setAttribute('crossorigin'

我正在使用第三方外部源文件:

  var s1 = document.createElement("script"), s0 = document.getElementsByTagName("script")[0];
  s1.async = true;
  s1.src = 'https://some_external_source.com';
  s1.charset = 'UTF-8';
  s1.setAttribute('crossorigin', '*');
  s0.parentNode.insertBefore(s1, s0);

外部源代码
'https://some_external_source.com“
包含一些内联样式。我的web应用程序的内容安全策略不允许任何内联样式,我无法更改外部源代码。因此,是否可以只允许
的内联样式https://some_external_source.com“
,是否阻止其他源?如果是这样,我应该怎么做?

CSP不可能允许在每个脚本基础上单独使用样式。但也可以使用散列单独允许每个内联样式

有两种内联样式:

  • 块-可以使用
    sha256-value\u of_块
  • 标签
    -中的style=attribyte可以与
    sha256-value\u of_style=
    +“不安全哈希”标记一起使用(可以检查浏览器对它的支持)

  • 消极的时刻是,如果有几十个
    Hi@granty,你必须添加很多散列,谢谢你的回复。内联样式来自我无权访问的外部文件。我可以用你在这里描述的方法为整个文件启用内联样式吗?如果在“整个文件”下你指的是javascript文件,答案是否定的。哈希可以用于允许特定的内联样式,例如
    style='background-color:green;填充物:5px;位置:绝对;'。如果指定字符串的哈希值
    背景色:绿色;填充物:5px;位置:绝对位置
    在CSP头中,允许应用此样式(“也需要不安全的哈希”标记)。对于
    情况相同,但不需要指定“不安全哈希”标记。