Récupérer les entités HTML en JavaScript : un guide complet
Lorsque vous travaillez avec des applications Web, il est souvent nécessaire de décoder les entités HTML qui ont été codé pour diverses raisons, telles que la sécurité ou la compatibilité. En JavaScript, il peut être nécessaire de supprimer l'échappement des entités HTML, en particulier lorsque les données sont obtenues à partir de XML-RPC ou d'autres sources codant des caractères pour la transmission.
Un problème courant qui peut survenir est lorsque les chaînes sont renvoyées par un XML-RPC. Le backend RPC contient des entités HTML, mais lorsque ces chaînes sont insérées dans HTML à l'aide de JavaScript, elles sont rendues littéralement au lieu du code HTML prévu. Cela indique que les entités HTML sont échappées via le canal XML-RPC.
Techniques de décodage dangereuses à éviter
De nombreuses méthodes pour annuler l'échappement des entités HTML en JavaScript ont été proposées , mais certains d’entre eux présentent des risques de sécurité importants. Par exemple, la fonction suivante :
function htmlDecode(input) { return input.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"); }
Bien que cette méthode puisse sembler fonctionner au départ, elle ne tient pas compte des intentions malveillantes potentielles. Si la chaîne d'entrée contenait une balise HTML non échappée (par exemple,