Qu'est-ce qu'une attaque par injection SQL / vulnérabilité?
FAQ Cette réponse a été écrite par k4thryn:
Une vulnérabilité d'injection SQL peut se produire si un programme mal écrit utilise l'utilisateur a fourni des données dans une requête de base de données sans la validation de la saisie. Ceci est le plus souvent trouvé dans des pages Web avec du contenu dynamique. Il existe d'excellents tutoriels et descriptifs des articles sur ce sujet, ainsi que la vulnérabilité de nombreux messages pour différentes applications de la pleine divulgation des sites Web.
Un exemple simple de l'injection SQL est un formulaire HTML de base de connexion dans lequel vous fournissez un nom d'utilisateur et mot de passe:
<form method="post" action="process_login.php"> <input type="text" name="username"> <input type="password" name="password"> </ form>
Compte tenu de cet extrait de code HTML, on peut déduire que le plus facile (et plus) pour le script "process_login.php" à travail serait pour lui permettre de construire et exécuter une requête de base de données qui ressemble à ceci:
"SELECT id DE logins WHERE username = '$ username' et le mot de passe = '$ password' ";
Dans ces conditions, si les variables "$ username" et "$ password" sont directement tirées de la saisie de l'utilisateur, le script de connexion peut facilement être trompés en pensant que un mot de passe valide n'a été fournie en jouant avec la syntaxe de l'instruction SQL. Supposons que la chaîne ont été fournis que le mot de passe:
'Ou''='
et nous a donné "bob" comme nom d'utilisateur. Une fois les variables sont interpolés, la requête ci-dessus se présente comme suit:
"SELECT id DE logins WHERE username = 'bob' et le mot de passe =''ou''='';
Cette requête retourne une ligne, car la dernière phrase:
... =''ou''
toujours à une véritable évaluation (une chaîne vide est toujours égale à une chaîne de caractères vide).
Prévention des attaques par injection SQL
Les méthodes les plus communes pour prévenir ce type d'injection SQL sont vunerability l'utilisateur de vérifier l'apport des personnages comme dangereux pour les guillemets simples, et en utilisant des requêtes préparées, qui racontent la base de données exactement à quoi s'attendre avant toute utilisation des données est transmise à celle-ci.
|






