SIMPLIFIER LES REQUETE SQL

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 2 juil. 2007 à 11:45
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015 - 2 juil. 2007 à 16:29
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43314-simplifier-les-requete-sql

cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
2 juil. 2007 à 16:29
admettons que j'ai une table utilisateurs (login varchar, password varchar, isadmin bit) et une table pleindedonnees

pour selectionner des données de données j'ai la requête :

select * from pleindedonnees
where (maclef = @maclef)

je remplace @maclef par "'" + valeur + "'" valeur
jusque là tout va bien, c'est ce que tu fait.

maintenant dans valeur je met
"'toto') GO insert into utilisateurs ('hacker', 'hacker', true) --"

la requête passée sera :

select * from pleindedonnees
where (maclef = 'toto') GO insert into utilisateurs ('hacker', 'hacker', true) --)

et je n'aurais plus à me connecter à l'application qu'en tant que 'hacker' avec le mot de passe 'hacker'.

Conclusion : suis les recommendation de seb et bidou.
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
2 juil. 2007 à 15:02
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
2 juil. 2007 à 14:15
remarque comme ca :
string stringDate = valeur.Year.ToString() + "-" & valeur.Month.ToString() & "-" + valeur.Day.ToString() + " " & valeur.Hour.ToString() + ":" & valeur.Minute.ToString() + ":" & valeur.Second.ToString();
this._Valeur.Replace(champ, "'" + stringDate + "'");

c'est pas bon en C#... l'opérateur de concaténation de chaine est le + pas le & !
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
2 juil. 2007 à 13:09
C'est effectivement pas l'pied...
Ca donne au moins l'exemple de ce qu'il ne faut pas faire !
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
2 juil. 2007 à 11:45
mouaip... ça simplifie le travail du hacker...
NE JAMAIS FAIRE DE REQUETE COMME CECI !
Toujours utiliser les DbParameters.

Enfin, si vraiment tu veux simplifier l'utilisation des requêtes passe plutot par le mapping par attribut ! (http://www.csharpfr.com/codes/MAPPING-ATTRIBUTS-EXEMPLE-UTILISATION_34726.aspx)
Rejoignez-nous