Content-Security-Policy: style-src-elem 指令

Baseline 已廣泛支援

此功能已成熟,可跨多個裝置和瀏覽器版本使用。自 2022 年 12 月起,所有瀏覽器均已提供此功能。

HTTP Content-Security-Policy (CSP) style-src-elem 指令指定了樣式表 <style> 元素和帶有 rel="stylesheet"<link> 元素的有效來源。

該指令不設定內聯樣式屬性的有效來源;這些來源是使用 style-src-attr 設定的(所有樣式的有效來源可以使用 style-src 設定)。

CSP 版本 3
指令型別 獲取指令
default-src 回退

是的。如果此指令不存在,使用者代理將查詢 style-src 指令,如果兩者都不存在,則回退到 default-src 指令。

語法

http
Content-Security-Policy: style-src-elem 'none';
Content-Security-Policy: style-src-elem <source-expression-list>;

此指令可以具有以下值之一

'none'

不允許載入此型別的任何資源。單引號是強制性的。

<source-expression-list>

以空格分隔的源表示式值列表。如果此型別的資源與任何給定的源表示式匹配,則可以載入它們。對於此指令,除了 'unsafe-hashes' 之外,style-src 適用的源表示式值同樣適用。

style-src-elem 可以與 style-src 結合使用。

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

示例

違規情況

給定此 CSP 頭

http
Content-Security-Policy: style-src-elem https://example.com/

...以下樣式表被阻止且無法載入

html
<link href="https://not-example.com/styles/main.css" rel="stylesheet" />

<style>
  #inline-style {
    background: red;
  }
</style>

<style>
  @import "https://not-example.com/styles/print.css" print;
</style>

...以及使用 Link 標頭載入的樣式

http
Link: <https://not-example.com/styles/stylesheet.css>;rel=stylesheet

規範

規範
內容安全策略級別 3
# 指令-style-src-elem

瀏覽器相容性

另見