cs_suzukMan
Messages postés58Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention13 septembre 2012
-
23 mai 2007 à 19:33
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
24 mai 2007 à 14:29
Bonsoir a tous, je devellope actuellement une application web ASP.
Je doit effectué un requete pour vérifier le nom d'utilisateur et le mot de passe c'est pourquoi je recupère les valeurs saisi dans les input type text de mon formulaire (via le request.form("elt")
Voici ma requete
Sql="select LoginName, Password from users where LoginName=" & request.form("uti") & "and Password=" & request.form("mdp")
Si vous voyez une erreur merci de me le signaler car je ne trouve sa m'embete !!
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 24 mai 2007 à 00:40
Bonsoir,
j'espere que c'est une blague ? =)
As ton avis, que se passe t'il si je met dans la textbox uti "'admin' --" ? ben je serais connecté en tant qu'admin ! Je te conseil vivement de regarder les procédures stockées qui d'une part corrigeront le problème de guillemet que tu as mais surtout rendra beaucoup plus secure ton application.
cs_suzukMan
Messages postés58Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention13 septembre 20121 24 mai 2007 à 09:07
Bonjour et merci de ta réponse.
Cependant je ne suis pas d'accord avec toi tout les logins et le les mot de passe sont stocké dans une base et l'admin à aussi un mot de passe je ne voit pas le problème d'insécurité. Chaque utilisateur a un statut aussi que je vérifie celon les actions qu'il veut effectuer.
Pour revenir a mon problème je n'arrive vraiment pas a trouver l'erreur de cette requête si vous pouviez m'aider svp !!
Sachez que quand j'enleve le where sa marche sa doit être a cause d'une concaténation mal écrite nan???
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 24 mai 2007 à 14:29
oui avec le replace niveau sécu c'est mieux mais les procédures stockes ou tout simplement les requetes parametrés permette d'une part de pas avoir de sql injection et d'autre part de vérifier le type des arguments
SqlCommand command new SqlCommand("select * from toto where machin @truc", conn)
command.Parameters.Add("@truc", SqlDbType.int).Value = 3;
et si on passe autre chose qu'un nombre c'est .net qui plante et pas sql :-)