316 votes

Comment s’échapper correctement des guillemets à l’intérieur des attributs html ?

J’ai une chute vers le bas sur une page web qui se brise lorsque la valeur de chaîne contient une citation.

La valeur est `` mais dans le DOM apparaît toujours comme une chaîne vide.

J’ai essayé toutes les façons je sais que pour échapper à la chaîne correctement, mais rien n’y fait.

Aucune idée comment cela rendu sur la page et donc le message de publication (postback) contient la valeur correcte ?

398voto

Andy E Points 132925

``est la bonne façon, la troisième de vos tests :

Vous pouvez voir ce travail dans un exemple de jsFiddle ici. Alternativement, vous pouvez délimiter la valeur d’attribut avec des guillemets simples :

24voto

Lukasz Czerwinski Points 1098

Si vous utilisez PHP, essayez d’appeler `` ou `` fonction.

10voto

Onur Yılmaz Points 391

Une autre option consiste à remplacer les guillemets par des guillemets simples si cela ne vous dérange pas. Mais je ne mentionne pas celui-ci:

 <option value='"asd'>test</option>
 

Je mentionne celui-ci:

 <option value="'asd">test</option>
 

Dans mon cas, j'ai utilisé cette solution.

2voto

Jim Manico Points 45

Vraiment, vous devez autoriser uniquement les données non fiables dans une liste blanche de bonne attributs comme: aligner, alink, alt, bgcolor, de bordure, de cellpadding, cellspacing, de classe, de couleur, de cols, colspan, coords, dir, du visage, de la hauteur, hspace, ismap, lang, marginheight, marginwidth, multiples, nohref, noresize, noshade, nowrap, ref, rel, rev, lignes, rowspan, défilement, forme, durée, résumé, tabindex, titre, usemap, valign, la valeur, vlink, vspace, largeur

Vous voulez vraiment conserver les données non fiables et de gestionnaire javascript ainsi que l'id ou le nom des attributs (ils peuvent tabasser d'autres éléments dans le DOM).

Aussi, si vous mettez des données douteuses dans un CRS ou un attribut "HREF", alors c'est vraiment un non fiables URL de sorte que vous devez valider l'URL, assurez-vous que ce n'est PAS un javascript: URL, puis en entité HTML codent.

Plus de détails sur l'ensemble de il ici: https://www.owasp.org/index.php/Abridged_XSS_Prevention_Cheat_Sheet

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X