Pour afficher correctement les données saisies par l'utilisateur sur une page HTML, vous devez simplement vous assurer que les caractères HTML spéciaux sont correctement codés en tant qu'entités, via String#replace
ou similaire. Les bonnes nouvelles sont qu'il ya très peu vous avez besoin d'encoder (à cette fin):
str = str.replace("&", "&").replace("<", "<");
Vous pouvez également remplacer >
si vous voulez, mais il n'y a pas besoin.
Ce n'est pas seulement à cause de XSS, mais aussi juste pour que les caractères apparaissent correctement. Vous voudrez peut-être aussi vous assurer que les caractères à l'extérieur du jeu latin commun sont transformés en entités appropriées, pour se protéger contre les problèmes de charset (UTF-8 vs. Windows-1252, etc.).
Pouvez-vous clarifier votre question? Encode-les pour quoi? –
Je veux les encoder pour un affichage sécurisé dans une page HTML, par ex. avec des caractères d'échappement – AJM