Maison > interface Web > js tutoriel > Comment décoder en toute sécurité les entités HTML en JavaScript pour éviter les vulnérabilités XSS ?

Comment décoder en toute sécurité les entités HTML en JavaScript pour éviter les vulnérabilités XSS ?

Mary-Kate Olsen
Libérer: 2025-01-04 04:16:39
original
675 Les gens l'ont consulté

How to Safely Decode HTML Entities in JavaScript to Prevent XSS Vulnerabilities?

Décodage des entités HTML en JavaScript

Dans ce fil de discussion, un développeur JavaScript a rencontré un problème où les entités HTML renvoyées par un backend XML-RPC étaient rendus littéralement dans le navigateur plutôt que d'être analysés au format HTML. Cet article explore les solutions fournies et approfondit les pièges et considérations potentiels lors de la suppression des entités HTML en JavaScript.

La réponse acceptée présentait une fonction de décodage des entités HTML, mais elle contenait un défaut important. En ne validant pas la chaîne d'entrée, cela rendait l'application vulnérable aux attaques de scripts intersites (XSS). Prenons l'exemple suivant :

htmlDecode("<img src='dummy' onerror='alert(/xss/)'>")
Copier après la connexion

Dans ce cas, la fonction décoderait l'entité HTML, mais elle exécuterait également le code JavaScript qui y est intégré, conduisant à une potentielle vulnérabilité XSS.

Pour résoudre ce problème, la discussion a introduit l'utilisation de DOMParser, qui fournit une méthode plus fiable pour analyser les chaînes HTML. En utilisant DOMParser, les entités HTML non échappées peuvent être décodées avec précision sans risque d'introduction de code malveillant.

function htmlDecode(input) {
  var doc = new DOMParser().parseFromString(input, "text/html");
  return doc.documentElement.textContent;
}
Copier après la connexion

Cette solution analyse efficacement la chaîne HTML et extrait le contenu en texte brut décodé, évitant ainsi les vulnérabilités XSS et garantissant une manipulation sécurisée. de données non fiables.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal