Validation, Canonicalization, Escaping & Sanitization
Dernière mise à jour
Dernière mise à jour
Toutes les propriétés échangées avec l’API ReST doivent être validées par l’API.
La validation doit également être implémentée côté client pour éviter les aller-retours inutiles.
L’API ReST doit convertir les données reçues vers leur forme canonique ou les rejeter.
Par exemple, les données suivantes :
... peuvent être converties en :
Ce n’est pas à l’API ReST de gérer l’escaping du contenu.
Par exemple, sur un blog, le commentaire suivant est cohérent :
C’est au client de gérer l’escaping est d’éviter les attaques de type XSS.
La sanitization est un jeu dangereux qui consiste à retirer le contenu potentiellement malicieux.
Pour l’exemple précédent, cela consisterait à retirer la partie onerror
:
Mais encore une fois, il s’agit d’une problématique client.
La difficulté est qu’il est toujours possible de trouver des techniques pour bypass la sanitization. Certains en ont fait leur métier 😉 http://n0p.net/penguicon/php_app_sec/mirror/xss.html