Quelqu'un peut-il expliquer l'injection SQL ? Comment provoque-t-elle des vulnérabilités ? Où se trouve exactement le point où le SQL est injecté ?
Réponses
Trop de publicités?L'injection SQL consiste en ce qu'un utilisateur malveillant place du SQL dans des champs de saisie pour essayer d'exécuter le SQL sur votre serveur.
Le conseil n°1 auquel j'adhère est d'utiliser des procédures stockées paramétrées plutôt que de construire du SQL brut dans le code.
Les paramètres des procédures stockées ne sont pas exécutés, ce qui les rend sûrs dans la plupart des cas.
J'ai trouvé ce document extrêmement intéressant sur les techniques d'injection SQL (le lien renvoie au PDF) : Injection SQL avancée dans les applications SQL Server .
Bien que le titre indique "Avancé", il est tout à fait lisible même si vous n'avez pas beaucoup de connaissances sur l'injection SQL.
Pour obtenir des informations générales, consultez le site Article de Wikipedia sur l'injection SQL .
En bref, les attaques par injection SQL peuvent vous rendre vulnérable à toutes sortes de vols et de destructions de données de bases de données. Les détails exacts de ce qui peut être fait à votre système dépendent des détails du système lui-même.
Chaque fois que vous transmettez des données de vos utilisateurs à votre base de données, vous avez un point d'injection potentiel. Les applications Web sont souvent déficientes à cet égard, car les nouveaux programmeurs ne comprennent souvent pas les risques liés à la manipulation des entrées des utilisateurs, et les applications Web sont attaquées par des personnes très intelligentes que vous n'auriez jamais pensé pouvoir trouver votre programme.