0% ont trouvé ce document utile (0 vote)
12 vues2 pages

Problème

La construction dynamique des requêtes SQL en concaténant des données utilisateur expose les applications à des attaques par injection SQL. Une solution efficace consiste à utiliser des requêtes paramétrées, qui séparent les instructions SQL des données utilisateur, empêchant ainsi toute interprétation malveillante. Cette méthode assure que les données utilisateur sont traitées comme des valeurs littérales, renforçant la sécurité des bases de données.

Transféré par

sabr ine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
12 vues2 pages

Problème

La construction dynamique des requêtes SQL en concaténant des données utilisateur expose les applications à des attaques par injection SQL. Une solution efficace consiste à utiliser des requêtes paramétrées, qui séparent les instructions SQL des données utilisateur, empêchant ainsi toute interprétation malveillante. Cette méthode assure que les données utilisateur sont traitées comme des valeurs littérales, renforçant la sécurité des bases de données.

Transféré par

sabr ine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Problème : Construction dynamique des requêtes SQL

Lorsque les requêtes SQL sont construites dynamiquement, elles sont générées en concaténant
directement des données utilisateur avec des instructions SQL. Cette méthode est vulnérable à
des attaques comme l'injection SQL. Par exemple :

Si un attaquant saisit un input malveillant, comme admin' --, la requête deviendra :

SELECT * FROM users WHERE username = 'admin' -- ' AND password = 'password123';

Le -- transforme tout ce qui suit en commentaire SQL. Résultat : l'attaquant accède à


l'utilisateur admin sans fournir le mot de passe.

Solution : Requêtes paramétrées

Les requêtes paramétrées (aussi appelées requêtes préparées) sont une méthode sûre pour
exécuter des instructions SQL. Elles séparent clairement les instructions SQL et les données
utilisateur, empêchant les données de l'utilisateur d'être interprétées comme des commandes
SQL.

Voici comment cela fonctionne :

1. Structure prédéfinie de la requête SQL : La requête est définie avec des


paramètres placeholders (ex. : ? ou :param_name).
2. Paramètres passés séparément : Les données utilisateur sont envoyées
indépendamment, sous forme de paramètres, et non concaténées dans la requête.
3. Validation et échappement automatique : Le moteur SQL traite les données
utilisateur comme des valeurs littérales et échappe automatiquement tout caractère
spécial (comme ', --).
 Placeholders (?) : Utilisés pour insérer des paramètres.
 Les données utilisateur (variables user_input_username et user_input_password) sont
transmises séparément.
 Si un attaquant tente une injection SQL ("admin' --"), cela sera traité comme une chaîne
de caractères normale et non comme du code SQL.

Vous aimerez peut-être aussi