TrustedTypePolicyFactory: Methode createPolicy()

Limited availability

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

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die createPolicy()-Methode des TrustedTypePolicyFactory-Interfaces erstellt ein TrustedTypePolicy-Objekt, das die als policyOptions übergebenen Regeln implementiert.

Die Standardrichtlinie

In Chrome erstellt eine Richtlinie mit dem Namen "default" eine spezielle Richtlinie, die verwendet wird, wenn ein String (anstatt eines Trusted Type-Objekts) in einen Injektionspunkt übergeben wird. Dies kann in einer Übergangsphase genutzt werden, während eine Anwendung von der Einfügung von Zeichenfolgen in Injektionspunkte umgestellt wird.

Hinweis: Das oben beschriebene Verhalten ist in der Spezifikation noch nicht endgültig festgelegt und kann sich in Zukunft ändern.

Warnung: Eine lax definierte Standardrichtlinie könnte den Zweck der Verwendung von Trusted Types vereiteln. Daher sollte sie mit strengen Regeln definiert werden, um sicherzustellen, dass sie nicht zum Ausführen gefährlichen Codes verwendet werden kann.

Syntax

js
createPolicy(policyName, policyOptions)

Parameter

policyName

Ein String mit dem Namen der Richtlinie.

policyOptions Optional

Vom Benutzer definierte Funktionen zum Konvertieren von Strings in vertrauenswürdige Werte.

createHTML(input[,args])

Eine Callback-Funktion in Form eines Strings, der Code enthält, der beim Erstellen eines TrustedHTML-Objekts ausgeführt wird.

createScript(input[,args])

Eine Callback-Funktion in Form eines Strings, der Code enthält, der beim Erstellen eines TrustedScript-Objekts ausgeführt wird.

createScriptURL(input[,args])

Eine Callback-Funktion in Form eines Strings, der Code enthält, der beim Erstellen eines TrustedScriptURL-Objekts ausgeführt wird.

Rückgabewert

Ein TrustedTypePolicy-Objekt.

Ausnahmen

TypeError

Wird ausgelöst, wenn Richtliniennamen durch die Content Security Policy trusted-types Direktive eingeschränkt sind und dieser Name nicht auf der Positivliste steht.

TypeError

Wird ausgelöst, wenn der Name ein Duplikat ist und die Content Security Policy trusted-types Direktive nicht allow-duplicates verwendet.

Beispiele

Der unten stehende Code erstellt eine Richtlinie mit dem Namen "myEscapePolicy" mit einer Funktion, die für createHTML() definiert ist und HTML bereinigt.

js
const escapeHTMLPolicy = trustedTypes.createPolicy("myEscapePolicy", {
  createHTML: (string) => string.replace(/</g, "&lt;"),
});

Erstellen einer Standardrichtlinie

Auf einer Seite, auf der Trusted Types über eine Content Security Policy mit der require-trusted-types-for-Direktive und dem Wert script durchgesetzt werden, erwartet jedes Injektionsskript, das ein Skript akzeptiert, ein Trusted Type-Objekt. Im Fall, dass stattdessen ein String eingefügt wird, wird die folgende Standardrichtlinie verwendet.

Die Richtlinie protokolliert eine Nachricht in der Konsole, um den Entwickler daran zu erinnern, diesen Teil der Anwendung in die Verwendung eines Trusted Type-Objekts umzuwandeln. Sie fügt auch Details zur Verwendung der Standardrichtlinie, des Typs und des Injektionspunkts dem zurückgegebenen Wert hinzu.

js
trustedTypes.createPolicy("default", {
  createScriptURL: (s, type, sink) => {
    console.log("Please refactor.");
    return `${s}?default-policy-used&type=${encodeURIComponent(
      type,
    )}&sink=${encodeURIComponent(sink)}`;
  },
});

Spezifikationen

Specification
Trusted Types
# dom-trustedtypepolicyfactory-createpolicy

Browser-Kompatibilität

BCD tables only load in the browser