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

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Die removeUnsafe()-Methode der Sanitizer-Schnittstelle konfiguriert den Sanitizer so, dass er alle Elemente und Attribute entfernt, die vom Browser als XSS-unsicher betrachtet werden.

Die Methode kann aufgerufen werden, um jeden Sanitizer XSS-sicher zu machen.

Syntax

js
removeUnsafe()

Parameter

Keine.

Rückgabewert

true, wenn die Operation Elemente, Attribute oder Inhaltsattribute für Ereignishandler, die als XSS-unsicher betrachtet werden, entfernt hat, und false, wenn keine Elemente oder Attribute entfernt wurden.

Beschreibung

Die removeUnsafe()-Methode konfiguriert den Sanitizer so, dass er alle Elemente und Attribute entfernt, die vom Browser als XSS-unsicher betrachtet werden. Dazu gehören die Elemente <base>, <embed>, <frame>, <iframe>, <object>, <script> und <use>, sowie die Inhaltsattribute von Ereignishandlern wie onafterprint, onbeforeinput und so weiter.

Beachten Sie, dass Sie diese Methode nicht aufrufen müssen, um den Sanitizer sicher zu machen, wenn Sie ihn mit einem der "sicheren" HTML-Setter wie Element.setHTML() und ShadowRoot.setHTML() verwenden. Wenn diese Setter verwendet werden, werden dieselben Elemente und Attribute aus dem Eingabewert entfernt, ohne die übergebene Sanitizer-Instanz zu verändern.

Beispiele

Grundlegende Verwendung

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 zeigt, 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-Ereignishandler-Attribut zulässt.

Der Code ruft dann removeUnsafe() auf dem 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 dargestellt. Beachten Sie, wie die unsicheren Elemente und Attribute aus den "Erlauben"-Listen in die entsprechenden "Entfernen"-Listen verschoben wurden. In diesem Fall haben wir immer noch <p> in den erlaubten Elementen, sodass nur <p>-Elemente im Eingabewert importiert werden, wenn der Sanitizer verwendet wird.

Spezifikationen

Spezifikation
HTML
# dom-sanitizer-removeunsafe

Browser-Kompatibilität