We apologize for untranslated text, you can use the Google Translation button to get an automatic translation of the web page in the language of your choice.

Injection javascript Rejetée

thomas lavocat · on 9/20/13 at 3:05 PM

Bonjour,

 

Il s'est avéré dans nos tests sur une de nos applications que la méthode HttpUtil.getUntrustedStringParameter() n'empéchait pas pas les injections de javascript. J'ai réglé le soucis en passant le résultat de la méthode dans une HttpUtil.encodeForHTML().

 

Ce serait top si getUntrustedStringParameter pouvait le faire d'origine.

0 pts
Olivier Jaquemet · on 9/20/13 at 3:13 PM

Bonjour,

Comme son nom l'indique, cette méthode permet de récupérer un paramètre qui ne peut pas être considéré comme sûr.

La règle est simple : 

  • les paramètres reçus doivent êtres récupérés avec une des autres methodes get*Parameter de HttpUtil, qui effectue une validation précise et donc permet de garantir le contenu de la valeur pour utilisation dans un contexte précis 
  • si le paramètre reçu ne peut pas subir de validation et donc que vous devez invoquer getUnstrustedStringParameter, car toute valeur est autorisée dans ce paramètre, alors il est impératif d'encoder correcterment la valeur reçue lors de l'affichage dans le HTML avec une des méthodes HttpUtil.encodeFor*

Il n'y aura donc aucun changement sur ce point.

6 pts
thomas lavocat · on 10/7/13 at 1:34 PM

Bonjour,

Du coup, quelle est la différence entre request.getParameter et HttpUtil.getUntrustedStringParameter() ?

#1

Aucune.

ça permet d'identifier clairement le travail effectué dans le code :

  • c'est une façon d'indiquer que OUI, on sait qu'on récupère un paramètre non validé, et qu'on devra l'encoder correctement après.
  • c'est également pour nous chez Jalios une méthode pour nous permettre
    1. de lancer des test unitaires interdisant l'usage de getParameter
    2. de rapidement faire des audits du code
Olivier Jaquemet · on 10/7/13 at 1:49 PM
0 pts