Tous les outils

Encodeur/décodeur HTML

Affichez les entrées utilisateur en toute sécurité en convertissant < en &lt; et & à &amp;. Décodez les entités lors de la lecture des extraits HTML stockés en texte brut pour l'indexation de la recherche. S'exécute localement pour le débogage des modèles et du CMS.
Input
Output
Hello world

Comment encoder ou décoder HTML

1. Choisissez le mode encodage (échappement) ou décodage.
2. Collez HTML ou du texte brut.
3. Copiez la sortie échappée pour le modèle ou l'attribut.
4. Décodez pour lire les exportations XML/HTML contenant beaucoup d'entités.

Exemples d'entités HTML

Affichage sécurisé des commentaires des utilisateurs

L'entrée <script>alert(1)</script> devient un texte inoffensif lorsqu'elle est codée pour une insertion sécurisée innerHTML via un nœud de texte.

Apostrophe dans l'attribut

O'Reilly in title attribute encodes quote as &#39; or &apos; depending on context.

Décoder l'export CMS

Description et description du produit copie; décode vers et pour l'édition.

Quand encoder HTML

Lors de l'insertion de texte non fiable dans des modèles HTML.
Lors du débogage du double encodage dans les modèles de courrier électronique.
Lors de la préparation d'extraits HTML générés par la démarque.

Quand l’encodage ne suffit pas

Lorsque vous avez besoin de nettoyer HTML avec les balises autorisées, utilisez la bibliothèque de styles DOMPurify.
Lorsque le contenu est une chaîne JavaScript, échappez également aux guillemets pour le contexte JS.
Lorsque l'URL est dans href : utilisez l'encodeur d'URL séparément.

Le contexte compte

HTML s'échappe pour les valeurs d'attribut peut différer des nœuds de texte — les guillemets sont importants dans les attributs. L'aide-mémoire OWASP répertorie également les contextes JS et CSS.

Bug de double encodage

&amp;amp; dans DB signifie quelqu'un qui a codé deux fois - décoder une fois, réparer le pipeline, encoder une fois en sortie.

E-mail HTML

Les clients varient en fonction de la prise en charge des entités : testez les caractères spéciaux codés dans Outlook et Gmail.

Questions fréquentes

Entités nommées ou numériques ?

&amp; contre &#38; — équivalent pour les caractères communs ; emoji peut avoir besoin de &#x1F600; forme numérique.

Encoder l'intégralité du document HTML ?

L'encodage du document entier affiche des balises littérales - encode généralement uniquement les données utilisateur.

Prévention XSS ?

L'encodage des nœuds de texte est utile ; ne jamais concaténer l'utilisateur brut HTML. Les en-têtes CSP ajoutent de la défense.

Caractères UTF-8 ?

Souvent laissé en UTF-8 dans le HTML5 moderne ; entités facultatives pour les non-ASCII.

Locale?

Oui.

Sortie de démarque ?

Associez-le à markdownToHtml : l'encodage s'effectue au niveau de la couche de rendu dans les pipelines appropriés.