Skip to main content

Wandeln Sie Sonderzeichen in HTML-Entities um und zurück.

Alle Berechnungen erfolgen lokal in Ihrem Browser. Es werden keine Daten an einen Server gesendet.

Die Ergebnisse dienen zur Information. Überprüfen Sie sie anhand anderer Quellen.

Maskieren Sie das Und-Zeichen zuletzt, und Sie zerstören jede gerade geschriebene Entität

HTML-Maskierung kennt fünf Zeichen und eine Regel zur Reihenfolge. Das Und-Zeichen muss zuerst, denn jede folgende Ersetzung führt neue Und-Zeichen ein. Maskieren Sie es zuletzt, wird aus < ein < — die Seite zeigt den Entitätstext statt des Zeichens, und der Fehler sieht nach kaputter Vorlage aus statt nach einem Reihenfolgefehler.

So wird gerechnet

  • Wandelt die in HTML bedeutungstragenden Zeichen in ihre Entitätsformen und zurück.
  • Wendet die Ersetzungen in der Reihenfolge an, die doppelte Maskierung vermeidet.
  • Deckt die fünf vordefinierten Entitäten sowie numerische Referenzen für alles Übrige ab.
&  →  &      MUSS zuerst ersetzt werden
<  →  &lt;
>  →  &gt;
"  →  &quot;
'  →  &#39;

alles andere:  &#DEZIMAL;  oder  &#xHEX;

Rechenbeispiel

Die Zeichenkette <b>a & b</b> korrekt maskiert und dann mit dem Und-Zeichen zuletzt.

  1. richtige Reihenfolge → &lt;b&gt;a &amp; b&lt;/b&gt;
  2. Und-Zeichen zuletzt → &amp;lt;b&amp;gt;a &amp; b&amp;lt;/b&amp;gt;
  3. jede Entität aus den früheren Schritten wurde erneut maskiert
  4. der Browser zeigt danach den wörtlichen Text &lt;b&gt; auf der Seite

Eine umgestellte Zeile macht aus funktionierender Ausgabe sichtbare Entitätscodes. Die fünf Ersetzungen sind einzeln trivial; schiefgehen kann allein ihre Reihenfolge.

Das Ergebnis lesen

  • Maskierung ist kontextabhängig, und dies deckt einen Kontext ab. Ein im Elementtext sicherer Wert ist nicht automatisch sicher in einem Attribut, einer URL, in einem Skriptblock oder in CSS — jeder Ort braucht seine eigene Maskierung dort, wo er verwendet wird.
  • &apos; ist in XML definiert, war es in HTML 4 aber nicht; deshalb ist &#39; die sicherere numerische Form für ein Apostroph in HTML-Ausgabe, die auf ältere Parser treffen kann.
  • Attributwerte brauchen speziell die Maskierung von Anführungszeichen. Ein unmaskiertes Anführungszeichen in einem in Anführungszeichen gesetzten Attribut beendet das Attribut vorzeitig — der Mechanismus hinter einem großen Teil der Injektion über Vorlagen.
  • Maskieren ist kein Bereinigen. Es macht Markup wirkungslos, indem es ihn als Text zeigt; es entscheidet nicht, ob der Inhalt überhaupt zulässig war, und ein System, das etwas HTML durchlassen muss, braucht einen Parser und eine Erlaubnisliste, keinen Maskierer.

Häufige Fragen

Warum zeigt meine Seite &lt;b&gt; als Text?
Der Inhalt wurde zweimal maskiert, meist weil die Und-Zeichen-Regel nach den übrigen lief oder weil ein bereits weiter oben maskierter Wert von der Vorlage erneut maskiert wurde. Suchen Sie die überflüssig maskierende Schicht, statt am Ende zu dekodieren.
Muss ich alle fünf Zeichen maskieren?
Im Elementtext sind Und-Zeichen und spitze Klammern das Minimum. In Attributwerten brauchen Sie zusätzlich die Anführungszeichen, und da Maskierer selten wissen, welchen Kontext sie beliefern, ist es die sichere Voreinstellung, alle fünf zu behandeln.