Déséchapper les entités HTML en JavaScript : un guide pour éviter les vulnérabilités XSS
En JavaScript, lors du traitement de données provenant de sources non fiables, déséchapper soigneusement les entités HTML est crucial pour prévenir les vulnérabilités XSS (Cross-Site Scripting). L'exemple fourni illustre le problème où les chaînes contenant des entités HTML renvoyées via XML-RPC apparaissent littéralement au lieu de s'afficher correctement.
Solution basée sur DOM pour les chaînes de confiance :
Pour chaînes de confiance, lorsque l'intention est d'afficher du contenu HTML dans le document, la fonction suivante peut être utilisée :
function htmlDecode(input) { var doc = new DOMParser().parseFromString(input, "text/html"); return doc.documentElement.textContent; }
Cette méthode utilise le DOMParser pour créer un document temporaire à partir de la chaîne d'entrée. La propriété textContent de documentElement extrait ensuite le texte non échappé.
Attention aux chaînes non approuvées :
Lorsque vous traitez des chaînes non fiables, il est essentiel de noter que l'utilisation de chaînes basées sur DOM des méthodes comme celle ci-dessus peuvent potentiellement introduire des vulnérabilités XSS. Cela se produit lorsque la chaîne d'entrée contient des balises HTML non échappées, permettant au navigateur d'exécuter du code malveillant.
Techniques de diagnostic :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!