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 :

TEST de SQl Injection -Tautologie-


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 74
    Par défaut TEST de SQl Injection -Tautologie-
    Bonjour ,
    Je voulais faire un petit test e sql injection sur un formulaire
    Le formulaire va récupérez le nom et le mdp et vérifiera le données s’ils existent dans la bdd
    Voila le code de formulaire (Je n’utilise pas les requêtes préparé)

    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
     
     
    <?php require 'include/header.php';?>
    <?php
     
    try
    {
    	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    	$bdd = new PDO('mysql:host=localhost;dbname=tuto', 'root', '',
    		$pdo_options);
     
    	}catch(Exception $e)
    {
    	die('Erreur : '.$e->getMessage());
    }
     
     
    $login = $_POST['username'];
    $password = $_POST['password'];
     
     
    // Requête SQL
    $req = $bdd->query("SELECT * FROM sqli WHERE username='$login' AND password='$password'");
     
     
     
    ?>
     
    <h1>  S'inscrire </h1>
    <form action="" method="POST">
     
    	<div class="form-group">
    		<label for="">Nom</label><br/>
    		<input type="text" name="username" class="form-control" />
    	</div>
     
    	<div class="form-group">
    		<label for="">Mot de passe</label><br/>
    		<input type="password" password="password" class="form-control" />
    	</div>
     
    	<button type="submit" class="btn btn-primary"> Inscription</button>
     
    </form>
     
    <?php require 'include/footer.php';?>
    et l'erreur c'etait :

    Notice: Undefined index: username in C:\wamp64\www\project\bootstarp\poo.php on line 16
    Notice: Undefined index: password in C:\wamp64\www\project\bootstarp\poo.php on line 17
    Merci

  2. #2
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Bonjour,

    il faut tester si les variables POST existe avant de les utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(!empty( $_POST['username']) AND !empty( $_POST['password'])) {
    $login = $_POST['username'];
    $password = $_POST['password'];
     
     
    // Requête SQL
    $req = $bdd->query("SELECT * FROM sqli WHERE username='$login' AND password='$password'");}

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 74
    Par défaut
    Merciii

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 74
    Par défaut
    svp Pourquoi je n’ai pas un affichage « reussi » dans la page login.php
    Lorsque j’entre le nom est le mot de passe .


    formulaire
    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
     
     
     
    <!DOCTYPE html>
    <html lang="fr">
      <head>
        <meta charset="utf-8">
     
     
        <title>SQLI</title>
        </head>
     
    <h1>  S'inscrire </h1>
    <form action="login.php" method="POST">
     
    	<div class="form-group">
    		<label for="">Nom</label><br/>
    		<input type="text" name="username" class="form-control" />
    	</div>
     
    	<div class="form-group">
    		<label for="">Mot de passe</label><br/>
    		<input type="password" password="password" class="form-control" />
    	</div>
     
    	<button type="login" class="btn btn-primary"> Inscription</button>
     
    </form>
     
     
    </html>
    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
     
    <?php
     
    try
    {
    	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    	$bdd = new PDO('mysql:host=localhost;dbname=tuto', 'root', '',
    		$pdo_options);
     
    }catch(Exception $e)
    {
    	die('Erreur : '.$e->getMessage());
    }
     
     
    if(!empty( $_POST['username']) AND !empty( $_POST['password'])) {
    	$login = $_POST['username'];
    	$password = $_POST['password'];
     
     
    // Requête SQL
    	$req = $bdd->query("SELECT * FROM sqli WHERE username='$login' AND password='$password'") or die("erreur ".mysql_error());
    	$donnees = $req->fetch();
    	$row=mysql_fetch_array($result);
     
    if ($row['username']==$username && $row['password']==$password) {
     
    	echo "login succceful".$row['username'];
    	<SCRIPT LANGUAGE="Javascript">alert("Ajout avec succés!");</SCRIPT>
    } else {
    	echo "login unsuccceful";
    }
     
     
    }
     
    ?>

  5. #5
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Parce qu'il faut inclure le feuille de style css de bootstrap...

    Voici ici pour les liens : https://www.bootstrapcdn.com/

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 74
    Par défaut
    Oui c’est vraie premièrement j’ai commence avce un Template boostrap.
    J’ai mis un formulaire simple, je ne sais pas, peut être le problème est dans login.php .
    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
     
     
     
    <!DOCTYPE html>
    <html lang="fr">
      <head>
        <meta charset="utf-8">
     
     <!-- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> -->
        <title>SQLI</title>
        </head>
     
    <h1>  Connect </h1>
     
     
     
    <html>
    	<body>
    		<form action="login.php" method="POST">
    			<p>username:</p><input type="text" name="username" />
    			<p>password:</p><input type="password" name="password" />
    			<br />
    			<input type="submit" value="Login" />
    		</form>
     
     
    	</body>
    </html>
     
    </html>

  7. #7
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Heu, si tu mets le code entre les balises <!-- et --> alors il ne sera pas interprété... Ces balises sont pour les commentaires html.

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 74
    Par défaut
    Oui j’ai voulu faire un code sans boostrap (s’il marche ,sera une autre histoire avec bosstrap et css)

    form
    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
     
    <!DOCTYPE html>
    <html lang="fr">
      <head>
        <meta charset="utf-8">
     
     <!-- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> -->
        <title>SQLI</title>
        </head>
     
    <h1>  Connect </h1>
     
     
     
    <html>
    	<body>
    		<form action="login.php" method="POST">
    			<p>username:</p><input type="text" name="username" />
    			<p>password:</p><input type="password" name="password" />
    			<br />
    			<input type="submit" value="Login" />
    		</form>
     
     
    	</body>
    </html>
     
    </html>
    verification
    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
     
    <?php
     
    try
    {
    	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    	$bdd = new PDO('mysql:host=localhost;dbname=tuto', 'root', '',
    		$pdo_options);
     
    }catch(Exception $e)
    {
    	die('Erreur : '.$e->getMessage());
    }
     
     
    if(!empty( $_POST['username']) AND !empty( $_POST['password'])) {
    	$login = $_POST['username'];
    	$password = $_POST['password'];
     
     
    // Requête SQL
    	$req = $bdd->query("SELECT * FROM sqli WHERE username='$login' AND password='$password'") or die("erreur ".mysql_error());
    	$donnees = $req->fetch();
    	$row=mysql_fetch_array($result);
     
    if ($row['username']==$username && $row['password']==$password) {
     
    	echo "login succceful".$row['username'];
     
    } else {
    	echo "login unsuccceful";
    }
     
     
    }
     
    ?>
    url du formulaire : http://localhost/project/bootstarp/poo.php
    Lorsque je clique sur submit : j’obtient dans l’url :
    http://localhost/project/bootstarp/poo.php/login.php et non
    http://localhost/project/bootstarp/login.php

Discussions similaires

  1. Protection contre les SQL Injections ?
    Par kedare dans le forum JDBC
    Réponses: 9
    Dernier message: 05/05/2010, 10h42
  2. SQL injection, stored procedures
    Par badjoe dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 03/08/2006, 12h26

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