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 :

Sécuriser un PHP pour éviter les vulnérabilités SQL.


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif

    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 36
    Par défaut Sécuriser un PHP pour éviter les vulnérabilités SQL.
    Bonjour,
    voila j'ai un Php pour DOWNLOAD sur mon site mais il semble qu'il dispose d'une faille SQL après avoir testé avec un outil, ma demande d'aide c'est :
    qui peut me corriger ce PHP des failles SQL. Merci.

    voici mon code :
    download.php
    Code php : 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
    if($sql_conn==true)
    {
     $down_id=str_replace("",";",$_GET["id"]);
     $down_qq = "SELECT files.*,members.name AS m_name FROM files LEFT JOIN members ON members.id=files.uploader WHERE files.id=".$down_id;
     $down_q=mysqli_query($sql_conn, $down_qq);
     $names_type=array("Application","Module","Database","Tutorial",6 => "Randome",15 => "Tutorial",16 => "Database",17 => "Module",18 => "Application",19);              
     if ($down_what=mysqli_fetch_array($down_q))
      {
       ...... etc ....
     
     }
     
    }
    else
    {
     mysqli_close($sql_conn);
    }

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    pour être mieux sécurisé par rapport aux injections sql, vous pouvez utiliser des requêtes préparées :
    https://www.php.net/manual/fr/pdo.pr...statements.php

  3. #3
    Membre actif

    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 36
    Par défaut
    Comme je suis nul en Php je n'arrive pas à l'implémenter avec mon exemple que je viens de poser en question. merci quand-même.

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Il faut échapper chacun des arguments avec mysqli_real_escape_string(), ici $down_id

    Tu trouveras des exemples dans la doc : https://www.php.net/manual/fr/mysqli...ape-string.php

    Si tu bloques transmet-nous tes tentatives afin qu'on puisse corriger.

  5. #5
    Membre actif

    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 36
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ................................
    if($sql_conn==true)
    {
     $sql_conn->set_charset('UTF-8');
     $down_id = $_GET["id"];
     $down_id = mysql_real_escape_string($down_id);
     $down_qq = "SELECT files.*,members.name AS m_name FROM files LEFT JOIN members ON members.id=files.uploader WHERE files.id=".$down_id;
     $down_q=mysqli_query($sql_conn, $down_qq);
      ...........
    }
    * J'ai dû faire ceci, mais dès que je clique sur le site sa ne fonctionne pas et aucune erreur n'apparaît, plutôt juste une page blanche.
    * sachant que "id" est toujours numérique.

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 256
    Par défaut
    Commences par utiliser error_reporting.

    Comme ça vite fait je regarderais la requête, déjà il ne doit pas y avoir de guillemet de fermeture ni de point virgule. Affiches la valeur de $down_qq

    Mets-toi aux requêtes préparées, un tutoriel très clair : https://fmaz.developpez.com/tutoriel...omprendre-pdo/
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. [MySQL] Formulaire PHP pour modifier les données SQL en fonction de l'id
    Par KellyDJ01 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/01/2020, 13h49
  2. [MySQL] Configurer PHP pour activer les requêtes SQL (serveur web - debian)
    Par Knular dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 15/07/2017, 18h46
  3. [MySQL] Sécurisation du code pour éviter les injections SQL
    Par cfloriot dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/04/2016, 11h18
  4. [MySQL] traitement php pour récupérer les resultats SQL
    Par debo41 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 21/04/2009, 17h18
  5. Aide pour éviter les acces concurents
    Par Mattamore dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/02/2008, 17h43

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