CSP:require-trusted-types-for

可用性有限

此功能並非基礎功能,因為它在一些最常用的瀏覽器中無法正常工作。

實驗性: 這是一個 實驗性技術
在生產環境中使用此功能前,請仔細檢視 瀏覽器相容性表格

HTTP Content-Security-Policy (CSP) require-trusted-types-for 實驗性 指令指示使用者代理控制傳遞給 DOM XSS 接收函式(例如 Element.innerHTML 設定器)的資料。

使用此指令時,這些函式僅接受由受信任型別策略建立的不可偽造的型別化值,並拒絕字串。結合 trusted-types 指令(該指令用於保護受信任型別策略的建立),這允許作者定義規則來保護向 DOM 寫入值,從而將 DOM XSS 攻擊面縮小到 Web 應用程式程式碼庫的少量隔離部分,從而方便監控和程式碼審查。

語法

http
Content-Security-Policy: require-trusted-types-for 'script';
'指令碼'

禁止使用帶有 DOM XSS 注入接收函式的字串,並要求使用由受信任型別策略建立的匹配型別。

示例

js
// Content-Security-Policy: require-trusted-types-for 'script'; trusted-types foo;

const attackerInput = '<svg onload="alert(/cross-site-scripting/)" />';
const el = document.createElement("div");

if (typeof trustedTypes !== "undefined") {
  // Create a policy that can create TrustedHTML values
  // after sanitizing the input strings with DOMPurify library.
  const sanitizer = trustedTypes.createPolicy("foo", {
    createHTML: (input) => DOMPurify.sanitize(input),
  });

  el.innerHTML = sanitizer.createHTML(attackerInput); // Puts the sanitized value into the DOM.
  el.innerHTML = attackerInput; // Rejects a string value; throws a TypeError.
}

規範

規範
受信任型別
# require-trusted-types-for-csp-directive

瀏覽器相容性

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

另請參閱