[SQL] Comprendre les bases de la SQL - Partie 1

Discussion dans 'Programmation' créé par XTRAK, 22 Octobre 2015.

  1. XTRAK

    XTRAK Membre

    Inscrit:
    13 Novembre 2014
    Messages:
    184
    J'aime reçus:
    145
    Points:
    2 723
    Yop !

    Ce tuto aura pour but de vous montrer les bases d'une requête SQL. Mieux comprendre pour mieux s'y prendre !

    Imaginons une Base de données SQL contenant une table nommée "EnvyUS"

    Kg8RXpMstj6BHQIbe9eNUbyATujP3F2R.png
    Cette table posséde donc 3 colonnes ( columns ), et chacune de ces colonnes contient des Données.


    Code:
    select Colonne 1,Colonne 2 from EnvyUS
    Cette requête retournera donc les données appartenant aux Colonnes 1 & 2 :

    Kg8RXpMstj6BHQIbe9eNUbyATujP3F2R.png
    Maintenant nous pouvons affiner notre requête :


    Code:
    select * from EnvyUS WHERE id = 1
    Traduction : Selectionne toutes les données provenant de la table EnvyUS où le champ id vaut 1

    Kg8RXpMstj6BHQIbe9eNUbyATujP3F2R.png

    Ce genre de requête est très fréquent noteamment à travers une variable provenant de l'url !

    http://www.fakesite.com/news.php?id=33

    Nous remarquons la présence du paramètre get "id" et nous pouvons imaginer que c'est l'id de la NEWS qui est enregistrée dans la Table.
    Kg8RXpMstj6BHQIbe9eNUbyATujP3F2R.png
    La requête sera donc la suivante :

    Code:
    $id = $_GET["id"]
    select * from news where id = $id
    Nous remarquons qu'ici la variable n'est pas vérifiée et qu'elle est récupérée telle quelle ce qui est la principale source d'une faille SQL.

    Reprenons l'url précedente : http://www.fakesite.com/news.php?id=33

    La requête deviendra :


    Code:
    select * from news WHERE id=33
    Tant que l'id récupéré est valide, tout ce passera normalement. Cependant essayons avec cette url : http://www.fakesite.com/news.php?id=33'

    Une erreur apparait !

    Code:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'' at line 1
    A ce stade là, nous avons en notre possession un site faillible SQL !​
     
    Dernière édition par un modérateur: 11 Mars 2017

Partager cette page

  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice