Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> PHP /MySQL Programmering >> Content

    MySQL Injection Tutorial

    MySQL Injection är handlingen att sätta MySQL uttalande i en databas utan kunskap om ägaren av databasen . Det är generellt sett gjort genom att utnyttja fält användarens input som inte skyddas ordentligt . Istället för att ge något verkligt bidrag som ägaren av databasen har bett om , injicerar användaren en MySQL uttalande som ändrar beteende frågan att ge injicera användaren möjlighet att manipulera databasen . MySQL injektioner

    Det enklaste sättet att förstå och lära sig vad MySQL injektion verkligen doesis att titta på ett exempel . Ett av de populäraste sätten att använda MySQLinjections är att kringgå inloggning kontroller på webbplatser . Här är ett exempel på awebsite som använder följande formulär för att autentisera användaren :

    Login : < input type = " text " name = " username " > Lozinka :

    När du har tryckt in inmatade data skickas sedan till sidan userlogin.php som tar emot och springer genom en fråga på databasen för att kontrollera nivån av åtkomst användare har och om han har angett rätt användarnamn och lösenord .

    < ? $ username = $ _POST [ ' username ' ] , $ password = $ _POST [ 'password ' ] ; $ query = " SELECT användarnamn , lösenord från användare där användarnamn = ' $ username " och lösenord = ' $ password ' " ; ? >

    Denna typ av inloggning form vidöppna för exploatering av MySQL injektion attacker . För att få tillgång till webbplatsen varje användare kan infoga följande kod : ' OR 1 = 1 - för användarnamn och ' OR 1 = 1 för lösenord

    Query kommer nu se ut så här : $ query = " SELECT användarnamn . , lösenord från användare där användarnamn = '' OR 1 = 1 - ' och lösenord = '' OR 1 = 1 " ;

    Denna fråga kommer att välja användarnamn och lösenord från användare där användarnamn eller lösenord inte existerar ( '' del ) eller om man är lika med ett . Som ett lika med en i samtliga fall databasens säkerhet äventyras. Två streck före apostrof tillsattes för att göra MySQL ignorera apostrof som är nu överflödig . Detta är bara en typ av attack med MySQL injektion . En annan variant på denna attack är att GetAccess till mer information än vad användaren får .

    Nu titta på ett exempel där databasen ägare använder följande queryto få data för visning på användarkontot info sidan .

    $ query = " SELECT * FROM användare WHERE username = ' $ namn ' " ,
    p Om denna typ av fråga inte är skyddat illvillig användare kan input'OR 1 = 1 - att kringgå användarnamn kolla . $ query = " SELECT * FROM användare där användarnamn = '' OR 1 = 1 - ' " , . här frågan nu inte kommer att välja bara data för användaren , men data för alla användare i tabellen " användare "


    skydd mot MySQL injektioner
    p Det finns många sätt att skydda mot MySQL injektioner . I själva verket MySQL injektioner är hot om utvecklaren har ignorerat hotet och misslyckats med att skydda sin kod . Det enklaste sättet att skydda sig mot injektioner i PHP och MySQL kombination är att använda PHP-funktionen : " mysql_real_escape_string "

    gå tillbaka till det första exemplet < $ username = $ _POST [ ' username ' ] , $ . . ? password = $ _POST [ 'password ' ] ; $ query = " SELECT användarnamn , lösenord från användare där användarnamn = ' $ username " och lösenord = ' $ password ' "; ? >

    att skydda mot MySQL injektioner direkta användningsområden för användarinmatningar måste befiltered igenom " mysql_real_escape_string " . Funktion " mysql_real_escape_string " kommer att undgå alla MySQL specialtecken bort möjligheten att förändra beteendet hos vår fråga

    < $ username = mysql_real_escape_string ( $ _POST [ ' username ' ] ) ; . ? $ Password = mysql_real_escape_string ( $ _POST [ ,"' Password ' ] ) ; $ query = " SELECT användarnamn , lösenord från användare där användarnamn = ' $ username " och lösenord = ' $ password ' "; ? > Addera

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man använder mysqladmin Flush - värdar kodad i PH…
    ·PHP Bild MIME-typer
    ·Online PHP Certifiering
    ·Så här aktiverar du PHP på IIS 6.0
    ·Hur Importera SQLite till MySQL
    ·PHP kan ansluta till en MySQL-fjärrdatabas Men det kan…
    ·Lägga till en omdirigering till lösenord HTML Kodning…
    ·Hur man dödar MySQL tråd
    ·HTML-utdata i PHP MySQL
    ·Hur man spola ut i PHP
    Utvalda artiklarna
    ·Hur kan man växla Divar med javascript
    ·Hur man läser en textfil från en klient Använda PHP
    ·Hur man använder en Mux att genomföra en logisk ekvat…
    ·Hur man skriver ett Ruby Script
    ·Hur man bygger Objektberoenden
    ·Lägga till en UDID till en Bestämmelse Arkiv
    ·Konvertera Oracle Forms till Java
    ·Hur man använder pekare i Vb
    ·Hur man beräknar Floating Point Precision
    ·Hur du skriver ut en fil i Visual Basic
    Copyright © Dator Kunskap http://www.dator.xyz