Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> PHP /MySQL programmering >> Content
    MySQL Injection Tutorial
    mysql injeksjon er lov å sette MySQL uttalelse i en database uten kjennskap til eieren av databasen . Det er generelt gjort ved å utnytte brukerens input felt som ikke er vernet riktig. I stedet for å gi reell innspill som eier av databasen har bedt om, injiserer bruker en MySQL -setning som endrer atferden til spørringen å gi injisere brukeren muligheten til å manipulere databasen. MySQL injeksjoner

    Den enkleste måten å forstå og lære hva MySQL injeksjon virkelig doesis å ta en titt på et eksempel . En av de populære måter å bruke MySQLinjections er å omgå innlogging kontrollen på nettsteder. Her er et eksempel på awebsite som bruker følgende skjema for å autentisere brukeren : en

    Logg inn : < inngang type = "text " name = "brukernavn "> Lozinka : < /form>

    etter å ha trykket sende data matet inn blir deretter sendt til siden userlogin.php som mottar og går gjennom en spørring på databasen for å sjekke nivået av tilgang brukeren har , og om han har oppgitt riktig brukernavn og passord.

    < ? $ username = $ _POST [ 'username '] , $ passord = $ _POST [' passord '] , $ query = "SELECT brukernavn, passord FROM brukere WHERE brukernavn = ' $ username " og passord = ' $ passord ' "; ? >

    Denne typen login skjemaet er gaper for utnytting av MySQL -injeksjon angrep . For å få tilgang til nettstedet enhver bruker kan sette inn følgende kode : ' OR 1 = 1 - for brukernavn og " OR 1 = 1 for passord

    Query vil nå se slik ut: $ query = " SELECT brukernavn. , passord fROM brukere WHERE brukernavn = '' OR1 = 1 - ' og passord = '' OR 1 = 1 ";

    Dette søket vil velge brukernavn og passord fra brukere hvor brukernavn eller passord ikke eksisterer ( '' delvis) eller hvis man er lik én . Som en lik en i alle tilfeller sikkerheten i databasen er kompromittert . To streker før apostrof ble lagt for å gjøre MySQL ignorere apostrof som nå er overflødige. Dette er bare én type angrep med MySQL injeksjon. En annen variant av dette angrepet er å getaccess til mer informasjon enn brukeren har lov til .

    Nå se på et eksempel der database eieren bruker følgende queryto få data for visning på brukerkontoen info side .
    < P > $ query = "SELECT * FROM brukere WHERE brukernavn = ' $ name ' ";
    p Hvis denne typen spørringen ikke er beskyttet ondsinnet bruker kan input'OR 1 = 1 - for å omgå brukernavn sjekke. $ query = "SELECT * FROM brukere WHERE brukernavn = '' OR 1 = 1 - '" ; . Denne spørringen nå vil ikke velge bare data om brukeren , men data for alle brukere i tabellen " brukere"


    Beskyttelse mot MySQL injeksjoner
    p Det er mange måter å beskytte mot MySQL injeksjoner . Faktisk MySQL injeksjoner er trusler bare hvis utvikleren har ignorert trusselen og mislyktes i å beskytte sin kode . Den enkleste måten å beskytte mot injeksjoner i PHP og MySQL kombinasjonen er å bruke PHP-funksjonen : " mysql_real_escape_string "

    Går tilbake til det første eksemplet < $ username = $ _POST [ 'username '] ; $. . ? password = $ _POST [' passord '] , $ query = "SELECT brukernavn, passord FROM brukere WHERE brukernavn = ' $ username " og passord = ' $ passord ' "; ? >

    å beskytte mot MySQL injeksjoner direkte bruk av brukerens input må befiltered gjennom " mysql_real_escape_string " . Function " mysql_real_escape_string " vil unnslippe alle MySQL spesialtegn fjerne muligheten for å endre atferden til våre spørring

    < $ username = mysql_real_escape_string ( $ _POST [' brukernavn '] ); . ? $ Passord = mysql_real_escape_string ( $ _POST [ ,"'password '] ); $ query = "SELECT brukernavn, passord FROM brukere WHERE brukernavn = ' $ username " og passord = ' $ passord ' "; ? >


    früher :

     Weiter:
      Relatert Artike
    ·Slik eksporterer MySQL data til Excel i et PHP -funksjo…
    ·MySQL Komma feil 
    ·Slik fjerner PHP MailTo 
    ·Hvordan kontrollere om en kobling er Jobbe i PHP 
    ·Hvordan bruke PHP Med Java 
    ·Hvordan redigere PHP i Thesis 
    ·Slik importerer FTM MySQL filer 
    ·MySQL JDBC Tutorials 
    ·Hva Er Global Scope i PHP 
    ·Tutorial på SQL-funksjoner 
      Anbefalte artikler
    ·Hvordan koble Visual Basic til SQL 
    ·Hvordan du distribuerer Eclipse og Flex i GlassFish 
    ·Verktøy for å finne en minnelekkasje 
    ·Hvordan å kompilere Python kommandoer 
    ·Slik konfigurerer en Apache -server for PHP 
    ·Hvordan Ring en SQL lagrede prosedyren ved hjelp MS Acc…
    ·Hvordan gjøre Strengsammenkobling i Python 
    ·Hvordan koden ved hjelp av Script Editor i LiveCycle 
    ·Slik fjerner det siste elementet på en Ruby Array 
    ·Hvordan legge til en server til NetBeans 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/