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, die an DOM XSS-Senkenfunktionen übergeben werden, zu kontrollieren, wie zum Beispiel den Element.innerHTML
-Setter.
Wenn verwendet, akzeptieren diese Funktionen nur nicht manipulierbare, getypte Werte, die durch Trusted Type-Policies erstellt wurden, und lehnen Zeichenfolgen ab. Zusammen mit der trusted-types
Richtlinie, die die Erstellung von Trusted Type-Policies schützt, ermöglicht dies Autoren, Regeln zu definieren, die das Schreiben von Werten in den DOM bewachen und somit die Angriffsfläche von DOM XSS auf kleine, isolierte Teile des Webanwendungs-Codebase reduzieren. Dies erleichtert deren Überwachung und Code-Review.
Syntax
Content-Security-Policy: require-trusted-types-for 'script';
'script'
-
Verbietet die Verwendung von Zeichenfolgen mit DOM XSS-Injektionssenkenfunktionen und erfordert übereinstimmende Typen, die durch Trusted Type-Policies erstellt wurden.
Beispiele
// 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 |