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 表格僅在瀏覽器中載入

另請參見