Entités HTML
Échappez les caractères de balisage pour qu'ils s'affichent comme du texte, ou décodez-les.
- Fonctionne dans votre navigateur — votre texte n'est jamais envoyé nulle part
- Sans inscription, sans quota, gratuit et utilisable aussi souvent que vous le souhaitez
Comment ça marche
Insérer du texte non fiable dans une page web sans l'échapper est à l'origine des failles de type cross-site scripting. L'encodage convertit les caractères qu'un navigateur traite comme du balisage en entités, afin qu'ils soient affichés plutôt qu'exécutés.
Ce qui est encodé
Les cinq caractères qui comptent : l'esperluette, le signe inférieur à, le signe supérieur à, les guillemets doubles et l'apostrophe. L'esperluette doit être encodée en premier, sinon tout ce qui la suit est encodé deux fois.
Décodage
Le décodage convertit les entités nommées et numériques en caractères à l'aide de l'analyseur du navigateur plutôt que d'une table de correspondance, de sorte que l'ensemble complet est géré correctement.
Ce qui est encodé exactement
L'encodage remplace cinq caractères : & devient &, < devient <, > devient >, " devient " et ' devient '. Cela suffit pour afficher du texte en toute sécurité dans du HTML et dans des attributs entre guillemets. Les lettres accentuées et les emoji sont laissés tels quels, car les pages en UTF-8 les affichent directement.
Décodage
Le décodage comprend toutes les entités nommées définies par le HTML, comme é, — et , ainsi que les entités numériques en décimal ou en hexadécimal (é, é), car il utilise l'analyseur HTML de votre navigateur.
Entités HTML : questions
Mon site est-il ainsi protégé contre les failles XSS ?
Échapper la sortie en fait partie nécessairement, mais la sécurité dépend d'un échappement adapté au bon contexte. Utilisez l'échappement de votre framework si vous en avez un.
Quels caractères encode-t-il ?
L'esperluette, le signe inférieur à, le signe supérieur à, les guillemets doubles et l'apostrophe, c'est-à-dire ceux qu'un navigateur lirait sinon comme du balisage.
Mon texte est-il envoyé ?
Non. L'encodage s'exécute dans la page.