CSP:style-src-attr

HTTP Content-Security-Policy (CSP) style-src-attr 指令指定了应用于单个 DOM 元素的内联样式的有效来源。

该指令不会设置 <style> 元素和具有 rel="stylesheet"<link> 元素的有效来源。这些是使用 style-src-elem 设置的(所有样式的有效来源可以使用 style-src 设置)。

CSP 版本 3
指令类型 获取指令
default-src 回退

是。如果此指令不存在,用户代理将查找 style-src 指令,如果两者都不存在,则回退到 default-src 指令。

语法

可以为 style-src-attr 策略允许一个或多个来源

http
Content-Security-Policy: style-src-attr <source>;
Content-Security-Policy: style-src-attr <source> <source>;

style-src-attr 可以与 style-src 结合使用

http
Content-Security-Policy: style-src <source>;
Content-Security-Policy: style-src-attr <source>;

来源

<source> 可以是 CSP 来源值 中列出的任何一个值。

请注意,这组相同的值可以在所有 获取指令 (以及 许多其他指令)中使用。

示例

违规情况

给定此 CSP 头

http
Content-Security-Policy: style-src-attr 'none'

…应用于以下元素的内联样式将不会应用

html
<div style="display:none">Foo</div>

该策略还会阻止通过设置 style 属性直接在 JavaScript 中应用的任何样式,或者通过设置 cssText

js
document.querySelector("div").setAttribute("style", "display:none;");
document.querySelector("div").style.cssText = "display:none;";

直接在元素的 style 属性上设置的样式属性不会被阻止,允许用户通过 JavaScript 安全地操作样式

js
document.querySelector("div").style.display = "none";

请注意,使用 JavaScript 可能独立地被 script-src CSP 指令阻止。

规范

规范
内容安全策略级别 3
# directive-style-src-attr

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参见