Maison > développement back-end > tutoriel php > Les fonctionnalités de connexion PHP et Mysql empêchent l'injection SQL

Les fonctionnalités de connexion PHP et Mysql empêchent l'injection SQL

小云云
Libérer: 2023-03-20 14:02:01
original
1621 Les gens l'ont consulté

J'ai récemment découvert l'injection SQL et découvert que la fonction de connexion de nombreuses personnes utilise le nom d'utilisateur et le mot de passe saisis par l'utilisateur en même temps, combinés dans une instruction SQL, et la requête détermine s'il y a un résultat à déterminer si la connexion peut être effectuée. Par exemple :


  1. <?php  
    $username = $_POST[&#39;username&#39;];  
    $password = $_POST[&#39;password&#39;];  
    $sql = "select * from user where username=&#39;{$username}&#39; and password=&#39;{$password}&#39; ";  
    $this->db->query($sql);
    Copier après la connexion

Il est facile d'ajouter ' ou 1=1 -- injection dans le paramètre username Bien que ce ne soit qu'un exemple, de nombreux frameworks sont utilisés de nos jours. Si vous ne faites pas attention, l'instruction finale combinée sera similaire à celle-ci. Ne parlons pas du filtrage des paramètres d'entrée, de la liaison des paramètres, de l'analyse syntaxique et d'autres méthodes courantes pour gérer l'injection SQL. Nous pouvons changer la méthode de jugement :

    <🎜. >
  1. <?php  
    $username = $_POST[&#39;username&#39;];  
    $password = $_POST[&#39;password&#39;];  
    $sql = "select * from user where username=&#39;{$username}&#39; ";  
    $data = $this->db->query($sql);  
      
    ......  
      
    if($data[&#39;password&#39;] == $password){  
        //密码OK  
    }else{  
        //密码错误  
    }
    Copier après la connexion


De cette façon, les données sont d'abord trouvées, puis php lui-même est utilisé pour déterminer si le mot de passe correspond. Cela résout-il le problème ?

Recommandations associées :

10 méthodes recommandées pour empêcher l'injection SQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
MySQL arrête le processus
Depuis 1970-01-01 08:00:00
0
0
0
Env中mysql
Depuis 1970-01-01 08:00:00
0
0
0
Erreur lors de l'installation de MySQL sous Linux
Depuis 1970-01-01 08:00:00
0
0
0
php - problème de surveillance MySQL
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal