Content-Security-Policy: script-src-attr 指令

Baseline 已廣泛支援

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

HTTP Content-Security-Policy (CSP) script-src-attr 指令指定 JavaScript 內聯事件處理程式的有效來源。

此指令僅指定像 onclick 這樣的內聯指令碼事件處理程式的有效來源。它不適用於可以觸發指令碼執行的其他 JavaScript 來源,例如直接載入到 <script> 元素和 XSLT 樣式表中的 URL。(可以使用 script-src 為所有 JavaScript 指令碼來源指定有效來源,或者使用 script-src-elem 僅為 <script> 元素指定有效來源。)

CSP 版本 3
指令型別 獲取指令
default-src 回退 是的。如果此指令缺失,使用者代理將查詢 script-src 指令,如果兩者都缺失,則回退到 default-src 指令。

語法

http
Content-Security-Policy: script-src-attr 'none';
Content-Security-Policy: script-src-attr <source-expression-list>;

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

'none'

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

<source-expression-list>

一個由源表示式值組成的空格分隔列表。如果資源型別與任何給定的源表示式匹配,則可以載入此類資源。對於此指令,以下源表示式值適用:

script-src-attr 可以與 script-src 結合使用,並將覆蓋該指令以檢查內聯處理程式

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

示例

違規案例

給定此 CSP 頭

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

...以下內聯事件處理程式將被阻止,不會被載入或執行

html
<button id="btn" onclick="doSomething()"></button>

請注意,通常您應該用 addEventListener 呼叫替換內聯事件處理程式

js
document.getElementById("btn").addEventListener("click", doSomething);

規範

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

瀏覽器相容性

另見