Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Content-Security-Policy: require-trusted-types-for Richtlinie

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Die HTTP Content-Security-Policy (CSP) require-trusted-types-for-Richtlinie weist Benutzeragenten an, die Daten zu kontrollieren, die an DOM XSS-Sink-Funktionen übergeben werden, wie den Element.innerHTML Setter.

Wenn diese verwendet wird, akzeptieren diese Funktionen nur nicht manipulierbare, typisierte Werte, die durch Trusted Type Richtlinien erstellt wurden, und lehnen Zeichenfolgen ab. Zusammen mit der trusted-types-Richtlinie, die die Erstellung von Trusted Type-Richtlinien überwacht, können Autoren Regeln definieren, die das Schreiben von Werten in das DOM schützen. Dadurch wird die Angriffsfläche für DOM XSS auf kleine, isolierte Teile der Codebasis einer Webanwendung reduziert, was deren Überwachung und Codeprüfung erleichtert.

Syntax

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

Verbietet die Verwendung von Zeichenfolgen mit DOM XSS-Injektions-Sink-Funktionen und erfordert passende Typen, die durch Trusted Type-Richtlinien erstellt wurden.

Beispiele

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.
}

Spezifikationen

Specification
Trusted Types
# require-trusted-types-for-csp-directive

Browser-Kompatibilität

Siehe auch