À retenir
- Une injection détourne le fonctionnement normal d'un logiciel en y insérant des données imprévues.
- C'est l'une des failles de sécurité les plus répandues et les plus dangereuses sur le Web.
- Le principe de défense n°1 est : « Ne jamais faire confiance aux entrées de l'utilisateur ».
Une injection consiste à insérer des données ou du code externe au sein d'un programme informatique de manière à modifier son comportement initial. Imaginez que vous remplissiez un formulaire de commande et qu'au lieu d'écrire votre adresse, vous glissiez une instruction disant « donnez-moi tout gratuitement » : si le système n'est pas protégé, il pourrait obéir à cet ordre imprévu.
Étymologie
Issu du latin injectio (« action de jeter dans »). En informatique, le terme s'est popularisé avec l'essor du Web pour désigner l'introduction forcée de commandes malveillantes dans les champs de saisie (comme une barre de recherche ou un formulaire).
Exemples d'usage
- Injection SQL : un utilisateur saisit du code de base de données dans un champ de connexion pour contourner le mot de passe.
- Injection de code (XSS) : insérer un script JavaScript malveillant dans un commentaire pour qu'il s'exécute chez les autres visiteurs.
- Injection de dépendances : une technique de programmation légitime où l'on fournit à un objet les outils dont il a besoin plutôt que de le laisser les créer lui-même.
Cas d'usage
Ce concept intervient principalement dans deux contextes opposés : la cybersécurité (pour exploiter ou corriger des failles de sécurité) et l'architecture logicielle (pour rendre le code plus flexible et facile à tester via l'injection de dépendances).
Bonnes pratiques
Pour se protéger des injections malveillantes, il ne faut jamais faire confiance aux données saisies par l'utilisateur. Il est impératif d'utiliser des requêtes préparées (pour les bases de données) et de nettoyer (échapper) systématiquement toutes les données entrantes avant de les traiter ou de les afficher.
Synonymes
Antonymes
Conseil
Si vous débutez en développement web, renseignez-vous immédiatement sur les Prepared Statements en SQL. C'est le meilleur rempart contre l'un des types d'injections les plus fréquents.
Questions fréquentes
L'injection est-elle toujours un acte de piratage ?
Non. Si l'injection SQL est malveillante, l'injection de dépendances est une méthode de programmation tout à fait saine et recommandée pour structurer des logiciels professionnels.
Comment savoir si mon site est vulnérable ?
Il faut tester les champs de saisie avec des caractères spéciaux (comme des guillemets) et vérifier si le site produit des erreurs étranges ou change de comportement.