Outils pour Développeurs

Encodage HTML

Échappez les caractères en entités HTML sûres.

Évaluez cet outil

Comment utiliser Encodage HTML

  1. Collez votre texte ou votre code HTML.
  2. Copiez les entités échappées.

À propos de Encodage HTML

Échapper un texte, c'est l'empêcher d'être lu comme du balisage. Remplacez un signe inférieur par < et le navigateur affiche le caractère au lieu d'ouvrir une balise — c'est pourquoi échapper une saisie non fiable avant qu'elle n'atteigne une page est la base de la prévention des failles de type cross-site scripting. Cet outil convertit les cinq caractères qui comptent — l'esperluette, les chevrons, le guillemet double et l'apostrophe. Tout le reste, lettres accentuées et emojis compris, est laissé tel quel ; l'UTF-8 les gère sans entités.

L'esperluette doit être traitée en premier, car elle amorce chaque entité. Échappez d'abord les chevrons, et vous échapperiez ensuite les esperluettes que vous venez d'introduire, transformant < en <. Cet outil effectue une seule passe, si bien que chaque caractère n'est remplacé qu'une seule fois. Entités nommées et entités numériques sont équivalentes pour un analyseur — la forme numérique se contente d'épeler le point de code.

Sachez clairement à quoi cela sert : inspecter et préparer du texte, pas sécuriser quoi que ce soit. L'échappement dépend du contexte — un résultat sûr dans le corps d'une page HTML ne l'est pas automatiquement dans un bloc de script, un attribut, une URL ou une valeur CSS, et chacun a ses propres règles. Faites l'échappement dans votre moteur de templating, où le contexte est connu. Inversez-le avec le décodeur HTML. Tout s'exécute dans votre navigateur.

Questions fréquentes

Quels caractères sont échappés ?

Exactement cinq : & < > " et '. Ce sont ceux qui peuvent changer la façon dont un analyseur lit votre texte. Les caractères accentués, les symboles et les emojis sont laissés intacts, car une page en UTF-8 les affiche parfaitement et les transformer en entités ne fait qu'alourdir le résultat.

L'échappement rend-il mon site sûr contre les attaques XSS ?

Non, et il est important de ne pas croire le contraire. L'échappement pour le corps d'une page HTML n'est pas suffisant à l'intérieur d'un bloc de script, d'un attribut de gestionnaire d'événement, d'une URL ou d'une feuille de style — chaque contexte a ses propres règles. Utilisez l'échappement contextuel de votre framework ; cette page sert à inspecter et préparer du texte.

Pourquoi faut-il échapper l'esperluette en premier ?

Parce que & amorce chaque entité. Si vous échappiez d'abord < en &lt;, puis les esperluettes, vous tomberiez sur le & que vous venez de créer et obtiendriez &amp;lt; — un résultat visiblement erroné. Une passe unique, comme celle utilisée ici, évite entièrement ce problème d'ordre.

Pourquoi &#39; plutôt que &apos; ?

Les deux signifient une apostrophe, mais &#39; est une référence numérique que tout analyseur HTML résout, tandis que l'entité nommée &apos; vient du XML et n'est pas reconnue par les anciens analyseurs HTML. Les outils d'échappement privilégient donc généralement la forme numérique.

Puis-je y coller du vrai code HTML ?

Oui — c'est un usage courant. Collez du balisage et vous récupérez la source échappée, prête à être affichée comme du code sur une page plutôt que d'être rendue comme des éléments.