Ne faites pas confiance aux données de vos utilisateurs

S’il y a bien un proverbe que j’entends depuis que j’ai démarré l’informatique, c’est bien “never trust user input” (ne faites pas confiance aux données de vos utilisateurs). L’idée est simple: lorsque vous attendez des données utilisateurs en entrée d’un traitement, il est nécessaire au préalable de vérifier, valider, voir de nettoyer l’information reçue.

On pense alors généralement à de la donnée provenant de formulaires dans le cas d’applications Web, on vérifiera le format d’une adresse e-mail qui sera utilisée pour envoyer une communication électronique. Mais la validation des données peut aussi relever d’un aspect sécurité. Par exemple, si une donnée renseignée par l’utilisateur va être utilisée au sein d’une requête SQL, on cherchera alors à échapper cette dernière afin de se prémunir d’éventuelle injection SQL.

S’assurer de la validité et de la cohérence d’une donnée, c’est offrir une meilleure expérience utilisateur aux personnes qui utilisent vos outils. Une erreur de saisie, un doigt qui dérape et si vite arrivée.

Aussi, dans le cas d’erreurs, de bugs ou de demandes d’assistance, on aura souvent tendance à dire que si l’utilisateur fait et renseigne n’importe quoi n’importe comment. Mais peut-il être incriminé si l’application ne fait pas les vérifications nécessaires à son bon fonctionnement ? N’avons-nous pas, nous développeurs, un rôle à jouer là-dedans ?

Ne faites jamais confiance à la donnée qui provient d’un utilisateur qu’il soit bien intentionné ou non. Appliquer des techniques de validation, nettoyer la donnée pour garantir la meilleure expérience possible et la sécurité de vos projets.