2009-10-27 9 views
0

Je suis actuellement en train de développer une application GWT 1.7.1 qui traite une quantité importante de données persistantes générées par l'utilisateur, donc il y a un risque de XSS malveillant. Une des mesures que je prends pour éviter cela est d'utiliser org.apache.commons.lang.StringEscapeUtils.escapeHtml() côté serveur (Oui, je suis bien conscient que cela n'empêchera pas toutes les attaques XSS possibles comme mentionné here et here).GWT interférant avec les mesures préventives XSS

Cette approche est à l'origine d'un problème côté client, car il semble que GWT exécute ses propres échapper (par exemple côté client Le serveur renvoie la chaîne « Alice & amp; Bob Inc. » et « Alice & ampli ; amp; Bob Inc. "est rendu au DOM qui est incorrect). Cela se passe définitivement côté client car la réponse http du serveur contient les données correctement codées. J'ai parcouru la documentation pour GWT et n'ai trouvé aucune référence à cette fonctionnalité. Est-ce que quelqu'un est au courant d'un moyen de désactiver ce comportement?

Répondre

1

Comment ajoutez-vous la valeur que le serveur renvoie à la page? Pourriez-vous ajouter au texte? Si vous êtes sûr que la chaîne est sûre, vous pouvez l'ajouter au format HTML (il y a généralement une option pour HTML) ou à des widgets spécifiques comme le HTML.

btw Il est généralement préférable de ne pas renvoyer les valeurs codées HTML du serveur car vous ne savez pas comment les utiliser. J'utilise la règle que vous gardez les valeurs dans leur format propre jusqu'à la dernière minute (en ajoutant au document etc).