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

XTRAK

  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  1. XTRAK

    XTRAK Ancien Staff

    Messages:
    176
    J'aime reçus:
    108
    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
    ●●●Outils

Publicité