Standardkonfiguration des Sanitizers
Die Standardkonfiguration des Sanitizers definiert die Konfiguration, die vom Sanitizer()-Konstruktor zurückgegeben wird, wenn kein configuration-Parameter als Argument übergeben wird.
Diese gleiche Konfiguration wird implizit verwendet, wenn Sie die sicheren Sanitizer-Methoden, wie zum Beispiel Element.setHTML(), ShadowRoot.setHTML(), und Document.parseHTML() aufrufen, ohne einen benutzerdefinierten Sanitizer anzugeben.
Diese Konfiguration entfernt folgende Arten von Elementen:
- Solche, die als XSS-gefährlich bekannt sind:
- Elemente, die für Clickjacking, Spoofing oder andere Angriffe verwendet werden könnten.
- Veraltete Elemente.
- Kommentare und
data-*-Attribute.
Es bietet daher einen Sanitizer mit einer minimalen Angriffsfläche, die dennoch für die Mehrheit der Anwendungsfälle der Sanitization geeignet ist.
Hinweis:
Der Aufruf von Sanitizer.removeUnsafe() oder das Übergeben eines benutzerdefinierten Sanitizers an die sichere Sanitizer-Methode entfernt nur die XSS-gefährlichen Elemente.
Es entfernt nicht die zusätzlichen Elemente, Kommentare und data-*-Attribute.
Die folgenden Abschnitte listen alle Elemente auf, mit einem ✓-Symbol zur Kennzeichnung derjenigen, die von der Standardkonfiguration erlaubt sind (das ❌-Symbol kennzeichnet somit diejenigen, die entfernt werden). Die Spalte "Zusätzliche erlaubte Attribute" listet die Attribute auf, die für die jeweiligen Elemente erlaubt sind; alle anderen Attribute des Elements werden entfernt (es sei denn, sie sind durch die globalen Attribute erlaubt). Der Abschnitt Globale Attribute listet die Attribute auf, die auf allen Elementen erlaubt sind (die Attribute, die bei der Verwendung der Konfiguration nicht entfernt werden).
HTML-Elemente
SVG-Elemente
MathML-Elemente
| Element | Erlaubt | Zusätzliche erlaubte Attribute |
|---|---|---|
<annotation> |
❌ | |
<annotation-xml> |
❌ | |
<maction> |
❌ | |
<math> |
✓ | |
<menclose> |
❌ | |
<merror> |
✓ | |
<mfenced> |
❌ | |
<mfrac> |
✓ | |
<mi> |
✓ | |
<mmultiscripts> |
✓ | |
<mn> |
✓ | |
<mo> |
✓ | fence, form, largeop, lspace, maxsize, minsize, movablelimits, rspace, separator, stretchy, symmetric |
<mover> |
✓ | accent |
<mpadded> |
✓ | depth, height, lspace, voffset, width |
<mphantom> |
✓ | |
<mprescripts> |
✓ | |
<mroot> |
✓ | |
<mrow> |
✓ | |
<ms> |
✓ | |
<mspace> |
✓ | depth, height, width |
<msqrt> |
✓ | |
<mstyle> |
✓ | |
<msub> |
✓ | |
<msubsup> |
✓ | |
<msup> |
✓ | |
<mtable> |
✓ | |
<mtd> |
✓ | columnspan, rowspan |
<mtext> |
✓ | |
<mtr> |
✓ | |
<munder> |
✓ | accentunder |
<munderover> |
✓ | accent, accentunder |
<semantics> |
✓ |
Globale Attribute
Die Standardkonfiguration erlaubt die folgenden Attribute auf allen Elementen.
Globale HTML-Attribute
Globale MathML-Attribute
displaystylemathbackgroundmathcolormathsizescriptlevel
SVG-Attribute
alignment-baselinebaseline-shiftclip-pathclip-rulecolorcolor-interpolationcursordirectiondisplaydominant-baselinefillfill-opacityfill-rulefont-familyfont-sizefont-size-adjustfont-stretchfont-stylefont-variantfont-weightletter-spacingmarker-endmarker-midmarker-startopacitypaint-orderpointer-eventsshape-renderingstop-colorstop-opacitystrokestroke-dasharraystroke-dashoffsetstroke-linecapstroke-linejoinstroke-miterlimitstroke-opacitystroke-widthtext-anchortext-decorationtext-overflowtext-renderingtransformtransform-originunicode-bidivector-effectvisibilitywhite-spaceword-spacingwriting-mode