Les données entrant dans une application (qu'il s'agisse de celles saisies par un utilisateur interactif ou celles envoyées par un procédé de transmission quel qu'il soit), sont une source de préoccupation particulière en cyber sécurité.
En effet, en l'absence de précautions particulières, on peut imaginer qu'un individu malveillant utilise ces entrées de données pour détourner le comportement prévu de l'application en injectant du contenu actif non envisagé par les concepteurs (injection SQL, injection de code, injection XML, etc.). De tels détournements peuvent remettre en cause la confidentialité et l'intégrité des données.
Pour se prémunir de ce risque, il est nécessaire de procéder systématiquement à une étape de validation avant traitement. La validation pourra prendre 2 formes distinctes qui peuvent se cumuler :
Aujourd'hui, de nombreux outils existent sur lesquels s'appuyer pour la validation :
Considérant que le Client/Serveur est présent partout, pour maximiser la qualité du procédé, il faudra prévoir de réaliser une validation côté Client ET côté Serveur !
Pour ce qui est des injections SQL, on pourra cumuler validation et requêtes préparées, sans oublier toutefois que les requêtes préparées ont un coût (supplément en temps de traitement).