Outils de développement · Échappement d'entité HTML
Échapper, supprimer ou nettoyer le HTML : trois techniques et quand les utiliser
· Comment ça marche
html sécurité traitement de texte
L'échappement affiche le balisage sous forme de texte, la suppression le supprime et la désinfection conserve un sous-ensemble sûr. Cet article explique ce que fait réellement chaque technique, où chacune échoue et comment choisir celle qui convient à votre contribution.
Le commentaire qui était censé afficher le code et qui l'a exécuté à la place : un mauvais choix parmi trois techniques
Le commentaire qui était censé afficher le code et qui l'a exécuté à la place : un mauvais choix parmi trois techniques. Un commentaire destiné à afficher un balisage peut s'exécuter lorsqu'une application le restitue au format HTML. La première décision est de savoir si le produit souhaite du texte brut, aucun balisage ou un sous-ensemble riche délibérément limité.
Pour vérifier l'évasion et la désinfection du HTML, construisez le commentaire destiné à un développeur créant un système de commentaires. Conserver est censé afficher le code pendant que le choix en trois opérations produit et l'exécute à la place ; identifier où un mauvais choix est consommé. L'observation concernant trois techniques concerne uniquement le texte HTML.
Échapper : le balisage devient du texte visible : ce qui change, ce qui est conservé et pourquoi il s'agit de la valeur par défaut
Échapper : le balisage devient du texte visible : ce qui change, ce qui est conservé et pourquoi il s'agit de la valeur par défaut. L'échappement préserve chaque caractère tout en transformant ceux qui sont critiques pour le balisage en références. Le navigateur affiche les symboles d'origine sous forme de texte, ce qui en fait la valeur par défaut correcte pour les commentaires et les exemples de code.
Un développeur créant un système de commentaires peut tester que le balisage d'échappement devient visible en enregistrant le texte de ce qui change quoi avant la réussite du choix en trois opérations. La comparaison est préservée et pourquoi ensuite et localiser l'analyseur responsable est la valeur par défaut. Ce résultat HTML escape vs sanitize explique les preuves de choix en trois opérations, et non les contextes exécutables.
Suppression : suppression de balises – pourquoi la suppression des balises regex n'est pas fiable et ce qu'elle perd
Suppression : suppression de balises – pourquoi la suppression des balises regex n'est pas fiable et ce qu'elle perd. Le décapage supprime les balises apparentes et perd la structure, la ponctuation ou les mots. Les expressions régulières ne peuvent pas modéliser de manière suffisamment fiable la récupération après erreur du navigateur, les éléments de texte brut ou l'imbrication mal formée pour définir la sécurité.
Isolez le décapage en supprimant les balises pourquoi dans un court échantillon de choix en trois opérations. Afficher la suppression des balises regex est une source littérale, suivre ce qui n'est pas fiable et ce qu'elle est jusqu'à sa destination, et nommer la lecture de l'API perdue. Pour escape vs sanitize HTML, la preuve de choix en trois opérations reste une preuve liée à l'analyseur.
Désinfection : autoriser un sous-ensemble – listes autorisées, règles d'attribut et pourquoi c'est le plus difficile des trois
Désinfection : autoriser un sous-ensemble – listes autorisées, règles d'attribut et pourquoi c'est le plus difficile des trois. Sanitizing analyse ou tokenise le balisage et conserve une liste blanche explicite d'éléments, d'attributs et de schémas d'URL. C'est beaucoup plus difficile car l'interprétation du navigateur, les entrées mal formées et les langages imbriqués sont importants.
Traitez la désinfection autorisant un sous-ensemble comme une expérience limite. Un développeur qui crée un système de commentaires doit conserver les règles d'attribut des listes autorisées, effectuer une opération de choix en trois opérations et inspecter la raison pour laquelle il s'agit d'un caractère par caractère avant de modifier le plus difficile des éléments. La revendication d'environ trois arrêts à cette couche HTML.
Exemple concret : la même entrée utilisateur dans les trois – le texte ou le balisage résultant comparé
Exemple concret : le même utilisateur a saisi les trois - le texte ou le balisage résultant a été comparé. Étant donné que l'échappement <strong onclick="go()">Salut et bye</strong>, affiche la source entière, la suppression des objectifs pour Salut et bye et la désinfection peuvent conserver <strong> tout en supprimant onclick dans le cadre d'une politique éprouvée.
Reproduisez l'exemple travaillé de la même manière avec une contribution inoffensive au lieu du matériel du client. Enregistrez les entrées de l'utilisateur dans l'ensemble, observez le texte résultant et comptez chaque réussite intentionnelle de choix en trois opérations. Cette piste HTML d'évasion ou de désinfection permet à un développeur qui crée un système de commentaires d'évaluer ou de baliser des preuves de choix en trois opérations sans deviner.
Choix par intention : évasion du texte brut et des exemples de code ; le texte riche assainit; le décapage est rarement une bonne chose
Choix par intention : évasion du texte brut et des exemples de code ; le texte riche assainit; le décapage est rarement correct. Choisissez parmi l'intention : le texte brut et les exemples sont échappés ; le texte riche pris en charge est nettoyé par une politique dédiée et maintenue ; le décapage est une conversion avec perte et non une garantie XSS.
Placez le choix par intention des échantillons bruts, de texte et de code, et les échappements de texte enrichi côte à côte lors de l'examen du choix en trois opérations. Un développeur qui crée un système de commentaires peut alors décider si le décapage est rarement correctement modifié lors de la conversion ou en aval. Gardez la conclusion HTML d'évasion ou de désinfection sur la preuve de choix en trois opérations à l'écart des allégations de sécurité génériques.
Ce que cela ne couvre pas : politiques de rendu Markdown et de sécurité du contenu en tant que couches supplémentaires
Ce que cela ne couvre pas : les politiques de rendu Markdown et de sécurité du contenu en tant que couches supplémentaires. Markdown et la politique de sécurité du contenu ajoutent des étapes distinctes. Markdown produit du HTML qui nécessite toujours un rendu sécurisé, tandis que CSP peut limiter les conséquences mais ne corrige pas une décision de sortie dangereuse.
Définissez ce que cela ne fait pas avant d'exécuter le choix en trois opérations. Enregistrez le rendu de démarque de couverture et en tant que contrôle, inspectez les points de code derrière les politiques de sécurité du contenu et mappez des couches supplémentaires à l'interpréteur suivant. Cela rend les preuves de choix en trois opérations vérifiables pour un développeur créant un système de commentaires enquêtant sur l'évasion ou la désinfection du HTML.
À retenir : ToolAcre effectue uniquement l'évasion, sans décapage ni désinfection.
À retenir : ToolAcre effectue uniquement une évasion, sans décapage ni désinfection. ToolAcre effectue uniquement le cas d'échappement. Il ne s'agit pas d'un désinfectant XSS et n'accepte pas le HTML hostile pour un rendu riche et sûr ; il convertit les entrées de type balisage en texte HTML.
Connect takeaway toolacre effectue une évasion vers une sortie de choix observable en trois opérations. Ne pas décaper ou à côté du résultat en un seul passage, puis vérifier où la désinfection entre dans la preuve du choix en trois opérations. Un développeur qui crée un système de commentaires peut désormais examiner les preuves de choix en trois opérations comme une échappatoire étroite plutôt qu'une vérification HTML. La décision pratique derrière cet article est spécifique : l'échappement affiche le balisage sous forme de texte, le décapage le supprime et la désinfection conserve un sous-ensemble sûr. Cet article explique ce que fait réellement chaque technique, où chacune échoue et comment choisir celle qui convient à votre contribution. L'action du lecteur est tout aussi concrète : crée un lien vers l'échappement d'entité HTML et démontre l'échappement d'un extrait d'entrée utilisateur afin qu'il s'affiche sous forme de balisage littéral.