Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1307

Trusted Types

Geprüft vonCybersecurity entrepreneur & security researcher

Was ist Trusted Types?

Trusted TypesBrowser-API und CSP-Direktive, die DOM-basiertes XSS verhindert, indem gefährliche DOM-Sinks nur typisierte, durch Policies geprüfte Werte statt roher Strings akzeptieren.


Trusted Types ist eine von Google entworfene und als W3C Working Draft standardisierte Schutzmassnahme, die DOM-basiertes XSS an der Wurzel beseitigen soll. Aktiviert man sie über die CSP-Direktiven require-trusted-types-for 'script' und trusted-types, weigert sich der Browser, Injection-Sinks — innerHTML, outerHTML, document.write, eval, setTimeout mit einem String, script.src, iframe.srcdoc und Dutzende weitere — auszuführen, sobald sie einen einfachen String erhalten. Der Code muss stattdessen typisierte Objekte (TrustedHTML, TrustedScript, TrustedScriptURL) übergeben, die von benannten, auditierten Policies über trustedTypes.createPolicy(...) erzeugt werden. Damit schrumpfen die Tausenden unsicheren Sinks einer Codebasis auf eine Handvoll überprüfbarer Policy-Funktionen zusammen.

Der Mechanismus ist in Chromium-Browsern verfügbar (Chrome und Edge seit v83, Mai 2020); die Implementierungen in Firefox und Safari sind noch in Arbeit, sodass er als Defence-in-Depth zusammen mit einer strikten CSP und nicht als alleinige Kontrolle eingesetzt wird. Eine spezielle Policy namens default fängt jeden String ab, der durchrutscht, und erlaubt es Teams, ihn durch einen Sanitizer zu leiten — DOMPurify gibt nativ TrustedHTML zurück, sodass DOMPurify.sanitize(html, {RETURN_TRUSTED_TYPE: true}) die Durchsetzung erfüllt. Google schreibt Trusted Types zu, DOM-XSS in Produkten wie Search und Photos auf nahezu null gedrückt zu haben, da die Mehrheit der historischen XSS-Bugs clientseitig war. Führe die Massnahme zunächst im Modus Content-Security-Policy-Report-Only ein, um Verstösse aufzuspüren, bevor du sie erzwingst.

flowchart TD
  A[Nicht vertrauenswürdiger String<br/>location.hash, postMessage] --> B{Zuweisung an einen<br/>DOM-Sink? z. B. innerHTML}
  B -->|Trusted Types erzwungen| C{Ist der Wert ein<br/>TrustedHTML-Objekt?}
  C -->|Ja, aus auditierter Policy| D[Sink wird sicher ausgeführt]
  C -->|Nein, roher String| E[Browser wirft<br/>TypeError + CSP-Report]
  E --> F[default-Policy<br/>DOMPurify bereinigt]
  F --> C
  B -->|Kein Trusted Types| G[Sink verarbeitet rohen String<br/>DOM-basiertes XSS]

Beispiele

  1. 01

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

  2. 02

    Ersetzen von element.innerHTML = userInput durch element.innerHTML = policy.createHTML(userInput).

Häufige Fragen

Was ist Trusted Types?

Browser-API und CSP-Direktive, die DOM-basiertes XSS verhindert, indem gefährliche DOM-Sinks nur typisierte, durch Policies geprüfte Werte statt roher Strings akzeptieren. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.

Was bedeutet Trusted Types?

Browser-API und CSP-Direktive, die DOM-basiertes XSS verhindert, indem gefährliche DOM-Sinks nur typisierte, durch Policies geprüfte Werte statt roher Strings akzeptieren.

Wie schützt man sich gegen Trusted Types?

Schutzmaßnahmen gegen Trusted Types kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.

Verwandte Begriffe

Siehe auch