| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> PHP /MySQL Programmation >> Content
    Injection MySQL Tutorial
    MySQL injection est un acte d'insertion déclaration MySQL dans une base de données à l'insu du propriétaire de la base de données . Il est généralement fait en exploitant les champs de saisie des utilisateurs qui ne sont pas protégées correctement . Au lieu de fournir véritable entrée que propriétaire de la base de données a demandé , l'utilisateur injecte une déclaration MySQL qui modifie le comportement de la requête de donner la capacité de l'utilisateur injection pour manipuler la base de données . MySQL injections

    La meilleure façon de comprendre et d'apprendre ce injection MySQL doesis vraiment à jeter un oeil à un exemple . L'un des moyens populaires de l'aide MySQLinjections est de contourner les contrôles connexion à des sites Web. Voici un exemple de awebsite qui utilise le formulaire ci-dessous pour authentifier l'utilisateur :

    Login: Lozinka :
    Photos

    après avoir appuyé soumettre des données entrées est ensuite envoyé à la page userlogin.php qui reçoit et passe par une requête sur la base de données pour vérifier le niveau d' accès utilisateur a et s'il est entré le nom d'utilisateur et mot de passe .

    < ? $ username = $ _POST [ 'username' ] ; $ password = $ _POST [ 'password' ] ; $ query = " SELECT nom d'utilisateur , mot de passe des utilisateurs WHERE username = ' $ username' et le mot de passe = ' $ password '"; ? > Photos

    Ce type de formulaire de connexion est grande ouverte à l'exploitation par des attaques par injection SQL . Pour accéder au site à tout utilisateur peut insérer du code ci-dessous : 'OR 1 = 1 - nom d'utilisateur et ' OR 1 = 1 pour mot de passe

    requêtes va maintenant ressembler à ceci: $ query = " SELECT nom d'utilisateur . , mot de passe des utilisateurs WHERE username ='' OR1 = 1 - 'et password = '' OR 1 = 1 " ;

    Cette requête sélectionnera nom d'utilisateur et mot de passe des utilisateurs , où les noms d'utilisateur ou mot de passe n'existent pas ( '' partie) ou si un égale un. Comme un égale un dans tous les cas, la sécurité de la base de données est compromise. Deux tirets avant apostrophe ont été ajoutés pour rendre MySQL ignorer apostrophe qui est désormais superflu . C'est juste un type d'attaque par injection MySQL. Une autre variante de cette attaque est de GetAccess à plus d'informations que l'utilisateur est autorisé à .

    Maintenant, regardez un exemple où un propriétaire de base de données utilise suivant queryto obtenir des données pour affichage sur la page d'information du compte utilisateur .
    < P > $ query = "SELECT * FROM utilisateurs WHERE username = '$ name' " ;

    Si ce genre de requête n'est pas protégé utilisateur malveillant est capable de input'OR 1 = 1 - pour contourner les check nom d'utilisateur. $ query = "SELECT * FROM utilisateurs WHERE username = '' OR 1 = 1 - '"; . Cette requête va maintenant pas sélectionner uniquement les données de l'utilisateur, mais les données de tous les utilisateurs dans le tableau «utilisateurs»
    < br >
    protection contre MySQL injections

    Il ya plusieurs façons de se protéger contre MySQL injections . En fait, les injections SQL sont des menaces que si le développeur a ignoré la menace et ont échoué dans la protection de son code. La meilleure façon de se protéger contre les injections en PHP et MySQL combinaison est d'utiliser la fonction PHP: " mysql_real_escape_string "

    Revenons au premier exemple <$ username = $ _POST [ 'username' ] ; $ . . ? password = $ _POST [ 'password' ] ; $ query = " SELECT nom d'utilisateur , mot de passe des utilisateurs WHERE username = ' $ username' et le mot de passe = ' $ password '"; ? > Photos

    Pour protéger contre les injections MySQL utilisations directes des entrées utilisateur doivent befiltered par " mysql_real_escape_string " . Fonction " mysql_real_escape_string " n'échappera tous les caractères spéciaux SQL suppression possibilité de changer le comportement de notre requête

    <$ username = mysql_real_escape_string ( $ _POST [ 'username' ] ) ; . ? $ Password = mysql_real_escape_string ( $ _POST [ ,"'password' ] ) ; $ query = " SELECT nom d'utilisateur , mot de passe des utilisateurs WHERE username = ' $ username ' et '$ password' password = " ; ? >


    Previous :

    next :
      articles connexes
    ·Comment construire un site Web Annonces 
    ·Comment créer un site web dynamique en PHP avec tablea…
    ·Comment améliorer calcul mathématique en PHP 
    ·Comment lire un fichier XLS en utilisant PHP 
    ·Comment construire une page d'enregistrement en PHP 
    ·Php class fonction VAR 
    ·Comment faire pour afficher des colonnes dans une table…
    ·Comment télécharger et Redimensionner une image PHP M…
    ·Comment construire votre propre base de données Driven…
    ·Comment surveiller MySQL avec Pandora 
      articles en vedette
    ·Comment réduire MPI 
    ·Microsoft Visual Basic pour Applications Tutorial 
    ·Comment exporter des images au coeur de Python 
    ·Comment pour savoir ce que PHP Votre serveur fonctionne…
    ·Comment faire une permutation en Python 
    ·Comment vérifier l'état de l'imprimante avec Java 
    ·Comment construire une base de données pour le site We…
    ·Comment faire le lien avec Windows Mobile 
    ·Comment construire un chemin dans Eclipse Java 
    ·Comment échapper les guillemets dans PHP 
    Copyright © Connaissances Informatiques http://fr.wingwit.com