IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

faille dans mes requêtes


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut faille dans mes requêtes
    Bonjour à tous,

    voilà, je pense être victime d'injection mysql.
    Pouvez-vous me dire si cette requête a une faille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    if (isset($_POST['valide'])) // si clique sur le bouton ok
    								{
     
    						 		    if(empty($_SESSION["mail"])) // si l'utilisateur n'est pas connecté
    									{
    										if(isset($_POST["mail"])) {$mail = $_POST['mail'];}	else { $mail = "";}
    										if(isset($_POST["mdp"])) {$mdp = $_POST['mdp'];} else { $mdp = "";}
    									}
     
    									if(empty($erreur[0]))
    									{
    										include ('connect.php');
    										/* on va d abord chercher si le client n'existe pas en effectuant un test sur la boîte mail */
    									    $sql = sprintf("select * from flatforswap_adherent where mail=%s and mdp=%s and valide !=%s", quote_smart($mail), quote_smart($mdp), quote_smart('0'));
    										$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
    										  if (mysql_num_rows($req) == 1) 
    										  {
    											 $data = mysql_fetch_assoc($req);
    											 $valide = $data['valide'];
    											 if ($valide == 2){
    											 $verifexist = true;}
    											 elseif($valide == 1){
    											 $verifexist = false;
    											 $erreurc[] = '<center><font color="#FF0000">'.$idem_txt0032.'</font></center>';}
    										  }
    										  else
    										  {
    											$verifexist = false;
    											$erreurc[] = '<center><font color="#FF0000">'.$idem_txt0033.'</font></center>';
    										  }
    										  mysql_close();
    										  if ($verifexist == 'true') 
    										  {
    											$_SESSION['mail'] = $data['mail']; /* l'adhérent est maintenant connecté */
     
    											include ('connect.php');
    											// $sqld = sprintf("SELECT id_adh FROM flatforswap_adherent WHERE mail=%s", quote_smart($_SESSION["mail"]));
    											// 20/04/2012 on rajoute la clause WHERE $valide = 2
    											$sqld = sprintf("SELECT id_adh FROM flatforswap_adherent WHERE mail=%s and valide =%s", quote_smart($_SESSION["mail"]), quote_smart('2'));
    											$reqd = mysql_query($sqld) or die('Erreur SQL : <br />'.$sqld);
    											$datad = mysql_fetch_assoc($reqd);
    											$id_adh = $datad['id_adh'];
    											$_SESSION['id_adh'] = $id_adh; /* on met id_adh en session afin d'éviter des requête inutiles */
    										  }
    							     	}
     
    									// message d'erreur
    									//if(isset($erreurc[0])) {for($i=0;$i<sizeof($erreurc);$i++) { echo $erreurc[$i];}} 
     
    								}
    Merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Je n'y connais pas grand chose à propos d'injection SQL.
    Mais au vu de votre code, je pense que le souci se situerai peut-être plus du côté de PHP.
    Peut-être vaut-il mieux poster dans le forum PHP?

    Pierre

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Ok. merci pier.antoine.

Discussions similaires

  1. [AC-2007] Petit souci dans mes requêtes imbriquées
    Par Thony3351 dans le forum Access
    Réponses: 25
    Dernier message: 29/08/2011, 11h33
  2. Plus de relations dans mes requêtes
    Par doczyk dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 27/05/2011, 20h35
  3. Un peu perdu dans mes requêtes
    Par PhilCou dans le forum Langage SQL
    Réponses: 1
    Dernier message: 06/02/2010, 20h53
  4. [MySQL] Pourquoi dois-je utiliser des "quotes penchées" dans mes requêtes?
    Par v4np13 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/02/2008, 23h23
  5. Réponses: 3
    Dernier message: 19/04/2007, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo