Requêtes SQL et '
Steph
-
Steph -
Steph -
Bonjour tout le monde
J'ai fais une requête SQL sous vb6 pour une table access2000 qui ressemble à ça :
SQL = "Select * from MaTable where MonChamp = ' " & MaVariable & " ' "
La syntaxe est bonne et la requête fonctionne très bien si l'utilisateur n'entre pas de caratère spéciaux (' , " , _ , ...). Dans ma textbox, l'utilisateur peut entrer tous les caractères qu'il veut, et lorsqu'il entre le caractère '(entre autre) la requête ne s'exécute pas ...
J'ai chercher un peu partout sans beaucoup de résultat.
Est-ce que quelqu'un pourrait m'aider. J'aimerai savoir comment insérer ma variable dans la requête SQL correctement pour que l'utilisateur puisse entrer tout ce qu'il veut.
Merci d'avance.
J'ai fais une requête SQL sous vb6 pour une table access2000 qui ressemble à ça :
SQL = "Select * from MaTable where MonChamp = ' " & MaVariable & " ' "
La syntaxe est bonne et la requête fonctionne très bien si l'utilisateur n'entre pas de caratère spéciaux (' , " , _ , ...). Dans ma textbox, l'utilisateur peut entrer tous les caractères qu'il veut, et lorsqu'il entre le caractère '(entre autre) la requête ne s'exécute pas ...
J'ai chercher un peu partout sans beaucoup de résultat.
Est-ce que quelqu'un pourrait m'aider. J'aimerai savoir comment insérer ma variable dans la requête SQL correctement pour que l'utilisateur puisse entrer tout ce qu'il veut.
Merci d'avance.
A voir également:
- Requêtes SQL et '
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Sql lister les tables ✓ - Forum Programmation
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
- Cherche des haricot vendez les moi ✓ - Forum DS
1 réponse
ALERTE ALERTE - gros risque de sécurité détecté.
Ton application peut être attaquée par SQL-Injection.
(Courant quand on débute).
Il est impératif de doubler toute apostrophe trouvée dans une chaîne avant de l'insérer dans une requête SQL.
Regarde: Tu as fait un champ de saisie que tu met dans MaVariable et l'insère dans la requête SQL. Ok.
Maintenant imagine ce qui se passe si je tape ça dans ton champ:
Ton programme va insérer ce que j'ai tapé dans ta requête SQL, qui devient:
J'ai réussi à effacer le contenu de ta table !
En doublant les apostrophes, le problème est en principe réglé.
Exemple:
et là ça passe.
Ton application peut être attaquée par SQL-Injection.
(Courant quand on débute).
Il est impératif de doubler toute apostrophe trouvée dans une chaîne avant de l'insérer dans une requête SQL.
Regarde: Tu as fait un champ de saisie que tu met dans MaVariable et l'insère dans la requête SQL. Ok.
Maintenant imagine ce qui se passe si je tape ça dans ton champ:
'; delete MaTable; select '
Ton programme va insérer ce que j'ai tapé dans ta requête SQL, qui devient:
Select * from MaTable where MonChamp = ' '; delete MaTable; select ' '
J'ai réussi à effacer le contenu de ta table !
En doublant les apostrophes, le problème est en principe réglé.
Exemple:
l'accentdevient --->
l''accent
et là ça passe.
je voudrais faire une req paramétrée en usant 2 variable d'un formulaire.
En faite j'ai unez table de personnel et je voudrais afficher les pers inscrits entre 2 dates entrées à partire du clavier donc je voudrais que l'utilisateur entre ces données et le clique sur un boutton déclanche l'execution de la req.
(une autre méthode que lafction entre...et(between)).
je travailsous access2000
Merci
Access c'est pas mon truc.
Merci beaucoup