| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> PHP /MySQL programmering >> Content
    MySQL Injection Tutorial
    MySQL Injection er handling indsætte MySQL erklæring i en database uden kendskab til ejeren af ​​databasen. Det er generelt gjort ved at udnytte brugernes input felter , der ikke er beskyttet ordentligt. I stedet for at give real input, ejeren af ​​databasen har bedt om , tilfører brugeren en MySQL erklæring , der ændrer adfærd forespørgslen for at give intravenøs brugeren mulighed for at manipulere databasen. MySQL injektioner

    Den nemmeste måde at forstå og lære, hvad MySQL injektion egentlig doesis at tage et kig på et eksempel . En af de populære måder at bruge MySQLinjections er at omgå login kontrol ved hjemmesider. Her er et eksempel på awebsite , der bruger følgende formular til at godkende brugeren : Hej

    Login : < input type = "text " name = " brugernavn" > Lozinka : < /form>

    efter tryk indsende indlæste data så sendes til den side userlogin.php der modtager og løber gennem en forespørgsel på databasen for at kontrollere niveauet af adgang bruger har , og hvis han har indtastet det rigtige brugernavn og adgangskode.

    < ? $ username = $ _POST [' brugernavn '] , $ password = $ _POST [ 'password '] , $ query = "SELECT brugernavn, password FROM brugere WHERE brugernavn = ' $ brugernavn ' og password = '$ password' " ? >

    Denne form for login-formular er vidt åben for udnyttelse af MySQL -injektion angreb . For at få adgang til hjemmesiden enhver bruger kan indsætte følgende kode: 'OR 1 = 1 - om brugernavn og ' OR 1 = 1 for password

    Query vil nu se sådan ud: $ query = "SELECT brugernavn. , password FROM brugere WHERE brugernavn = '' OR1 = 1 - ' og password = '' OR 1 = 1 "

    Denne forespørgsel vil vælge brugernavn og adgangskode fra brugere, hvor brugernavne eller password ikke eksisterer ( '' del ), eller hvis en er lig med én . Som en er lig med en i alle tilfælde sikkerhed af databasen er kompromitteret . To streger før apostrof blev tilføjet for at gøre MySQL ignorere apostrof , der er nu overflødig . Dette er blot én type angreb bruger MySQL injektion. En anden variation af dette angreb er at getaccess til mere information end bruger må .

    Se på et eksempel, hvor database ejeren bruger følgende queryto få data til visning på brugerkonto info side .
    < P > $ query = "SELECT * FROM brugere WHERE brugernavn = ' $ navn '"
    p Hvis denne form for forespørgsel ikke er beskyttet ondsindet bruger kan input'OR 1 = 1 - at omgå brugernavn kontrollere. $ query = "SELECT * FROM brugere WHERE brugernavn = '' OR 1 = 1 - '" . Denne forespørgsel nu, vil ikke vælge blot data for brugeren, men data for alle brugere i tabel "brugere"
    < br >
    Beskyttelse mod MySQL indsprøjtninger
    p Der er mange måder at beskytte mod MySQL injektioner. I virkeligheden MySQL indsprøjtninger er trusler kun hvis bygherren har ignoreret truslen og mislykkedes i at beskytte sine kode. Den nemmeste måde at beskytte mod injektioner i PHP og MySQL kombination er at bruge PHP-funktionen : " mysql_real_escape_string "

    Går tilbage til det første eksempel <$ username = $ _POST [' brugernavn '] , $ . . ? password = $ _POST [ 'password '] , $ query = "SELECT brugernavn, password FROM brugere WHERE brugernavn = ' $ brugernavn ' og password = '$ password' " ? >

    For at beskytte mod MySQL injektioner direkte anvendelser af brugernes input skal befiltered igennem " mysql_real_escape_string " . Function " mysql_real_escape_string " vil slippe alle MySQL specialtegn fjerne muligheden for at ændre adfærd vores forespørgsel

    < $ username = mysql_real_escape_string ( $ _POST [' brugernavn '] ) . ? $ Password = mysql_real_escape_string ( $ _POST [ ,"'password' ]) $ query = "SELECT brugernavn, password FROM brugere WHERE brugernavn = ' $ brugernavn ' og password = '$ password' " >


    Forrige :

    næste :
      Relaterede artikler
    ·Sådan Konverter Newline for MySQL 
    ·Hvordan man opbygger Forespørgsler i PHP 
    ·Sådan bruges en E Funktion Modifier 
    ·Sådan oprettes WSDL filer i Zend 
    ·Sådan Send en Plesk API PHP Command 
    ·Sådan Fratræk i PHP 
    ·Sådan fjernes Embedded JavaScript Tags Med PHP 
    ·MySQL Select Antal Records Tutorial 
    ·Sådan oprettes Numbers for en eksponentiel vækstkurve…
    ·Sådan Send en Mass PHP Email 
      Anbefalede Artikler
    ·Hvad Er ActiveX Do 
    ·Sådan tilføjes en bruger til RCS 
    ·Om SQL Profiler Anvendelse 
    ·Sådan konvertere en streng til en HTML Object i VB6 
    ·Sådan Defrag en VMWare Billed 
    ·Forskellen mellem Ækvivalens & Boundary Partitionering…
    ·Sådan Upload store filer i PHP 
    ·Sådan oprettes XML dokument med JDOM 
    ·Hvordan får jeg JDK Into the Java Bin mappe 
    ·Sådan Fjern scripttags i Mootools XHR 
    Copyright © Computer Viden http://www.computerdk.com