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

View in English Always switch to English

Sanitizer: removeUnsafe() Methode

Limited availability

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

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die removeUnsafe() Methode der Sanitizer Schnittstelle konfiguriert die Sanitizer-Einstellungen so, dass alle Elemente, Attribute und Event-Handler-Inhaltsattribute entfernt werden, die von dem Browser als XSS-unsicher angesehen werden.

Die Methode kann aufgerufen werden, um jede benutzerdefinierte Konfiguration XSS-sicher zu machen. Beachten Sie, dass Sie diese Methode nicht aufrufen müssen, wenn Sie den Sanitizer mit einem der "sicheren" HTML-Setter, wie z.B. Element.setHTML() und ShadowRoot.setHTML(), verwenden, um den Sanitizer sicher zu machen. Wenn sie in diesen Setzern verwendet wird, wird die Methode implizit aufgerufen, ohne die übergebene Sanitizer-Instanz zu verändern.

Syntax

js
removeUnsafe()

Parameter

Keine.

Rückgabewert

true, wenn die Operation Elemente, Attribute oder Event-Handler-Inhaltsattribute entfernte, die als XSS-unsicher gelten, und false, wenn keine Elemente oder Attribute entfernt wurden.

Beispiele

Grundlegende Nutzung

Der folgende Code zeigt, wie removeUnsafe() verwendet wird.

js
// Create sanitizer.
const sanitizer = new Sanitizer(/* Some configuration */);

// Make the configuration XSS-safe
sanitizer.removeUnsafe();

Eine Sanitizer-Konfiguration sicher machen

Dieses Beispiel demonstriert, wie der Aufruf von removeUnsafe() die Sanitizer-Konfiguration XSS-sicher macht.

JavaScript

Der Code erstellt zunächst ein neues Sanitizer-Objekt, das das sichere Element <p>, die unsicheren Elemente <script> und <iframe>, sowie das unsichere onwebkitanimationend Event-Handler-Attribut erlaubt.

Der Code ruft dann removeUnsafe() im Sanitizer auf und protokolliert seine Konfiguration.

js
// Create sanitizer that allows
const sanitizer = new Sanitizer({
  elements: ["p", "script"],
  attributes: ["onwebkitanimationend"],
  replaceWithChildrenElements: ["iframe"],
});

// Make the sanitizer safe!
sanitizer.removeUnsafe();

// Log the sanitizer configuration
const sanitizerConfig = sanitizer.get();
log(JSON.stringify(sanitizerConfig, null, 2));

Ergebnisse

Die resultierende Konfiguration wird unten gezeigt. Beachten Sie, wie die unsicheren Elemente und Attribute von den "erlauben"-Listen zu den entsprechenden "entfernen"-Listen verschoben wurden. In diesem Fall haben wir immer noch <p> in den erlaubten Elementen, so dass nur <p> Elemente in der Eingabe importiert werden, wenn der Sanitizer verwendet wird.

Spezifikationen

Specification
HTML Sanitizer API
# dom-sanitizer-removeunsafe

Browser-Kompatibilität