Sanitizer: removeUnsafe()-Methode
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-Konfiguration so, dass alle Elemente, Attribute und Event-Handler-Inhaltsattribute, die vom Browser als XSS-unsafe angesehen werden, entfernt werden.
Die unsicheren Elemente und Attribute werden zur Konfiguration hinzugefügt, indem Sanitizer.removeElement()
und Sanitizer.removeAttribute()
jeweils aufgerufen werden. Dadurch werden sie zu den Disallow-Listen der Sanitizer-Konfiguration hinzugefügt: removeElements
und removeAttributes
, und wenn vorhanden, aus den Allow-Listen der Konfiguration entfernt: elements
, replaceWithChildrenElements
und attributes
.
Die Methode kann aufgerufen werden, um jede benutzerdefinierte Konfiguration XSS-sicher zu machen. Wenn sie mit einer Konfiguration verwendet wird, die Allow-Listen verwendet, entfernt sie die XSS-unsicheren Entitäten aus diesen Listen. Wenn sie mit einer Konfiguration verwendet wird, die nur die Disallow- ("remove")-Listen verwendet, stellt sie sicher, dass die Konfiguration die unsicheren Elemente in diesen Listen beinhaltet.
Beachten Sie, dass, wenn Sie den Sanitizer mit einem der "sicheren" HTML-Setter wie Element.setHTML()
und ShadowRoot.setHTML()
verwenden, Sie diese Methode nicht aufrufen müssen, um den Sanitizer sicher zu machen. Bei der Verwendung in diesen Settern wird die Methode implizit aufgerufen, ohne dass die übergebene Sanitizer
-Instanz modifiziert wird.
Syntax
removeUnsafe()
Parameter
Keine.
Rückgabewert
Kein Rückgabewert (undefined
).
Beispiele
Grundlegende Verwendung
Der folgende Code zeigt, wie removeUnsafe()
verwendet wird.
// 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 zuerst 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()
auf dem Sanitizer auf und protokolliert seine Konfiguration.
// 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 "Allow"-Listen zu den entsprechenden "Remove"-Listen entfernt wurden. In diesem Fall haben wir immer noch <p>
in den erlaubten Elementen, sodass beim Einsatz des Sanitizers nur <p>
-Elemente im Input importiert werden.
Spezifikationen
Specification |
---|
HTML Sanitizer API # dom-sanitizer-removeunsafe |