| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> PHP /MySQL Programmazione >> Content
    MySQL Iniezione Tutorial
    MySQL iniezione è atto di inserire dichiarazione MySQL in un database senza la conoscenza del proprietario del database . In genere è fatto sfruttando i campi di input dell'utente che non sono protetti adeguatamente . Invece di fornire reale di ingresso che il proprietario del database ha chiesto , l'utente inserisce una dichiarazione MySQL che cambia il comportamento della query per dare la possibilità all'utente di iniettare per manipolare il database . MySQL iniezioni

    Il modo più semplice per capire e imparare ciò che MySQL iniezione doesis davvero a dare un'occhiata a un esempio . Uno dei modi più diffusi di utilizzare MySQLinjections è quello di bypassare i controlli d'accesso a siti web. Ecco un esempio di awebsite che utilizza il seguente modulo per autenticare l'utente :

    Login: < ingresso type = nome " testo" = " username" > Lozinka : < /form >

    dopo aver premuto invio dei dati immessi viene quindi inviato alla pagina di userlogin.php che riceve e gestisce attraverso una query sul database per controllare il livello di accesso utente è e se ha inserito il nome utente e la password corretti .

    < ? $ username = $ _POST [ 'username' ] ; $ password = $ _POST [ 'password' ] ; $ query = "SELECT username, password FROM utenti WHERE username = ' $ username' e la password = ' $ password' " ; ? >

    Questo tipo di modulo di login è aperta allo sfruttamento da attacchi di iniezione di MySQL . Per accedere al sito ogni utente può inserire il seguente codice: 'OR 1 = 1 - per il nome utente e ' OR 1 = 1 per la password

    Query sarà ora simile a questa : $ query = "username SELECT. , password FROM utenti WHERE username = '' OR1 = 1 - ' e password = '' OR 1 = 1 " ;

    Questa query selezionerà username e password da parte degli utenti , dove non esistono nomi utente o password ( '' parte) o se uno è uguale a uno. Come uno è uguale in tutti i casi una sicurezza del database è compromessa . Due trattini prima apostrofo sono stati aggiunti per rendere MySQL ignorare apostrofo che è ormai superfluo . Questo è solo un tipo di attacco con iniezione di MySQL . Un'altra variante di questo attacco è quello di GetAccess a più informazioni che all'utente è consentito .

    Ora guarda un esempio in cui il proprietario del database utilizza seguente queryto ottenere i dati per la visualizzazione su account utente pagina info .
    < P > $ query = "SELECT * FROM utenti WHERE username = ' $ name' " ;

    Se questo tipo di ricerca non è protetto utente malintenzionato è in grado di input'OR 1 = 1 - per bypassare verificare nome utente. $ query = "SELECT * FROM utenti WHERE username = '' OR 1 = 1 - '" , . Questa query ora non selezionare solo i dati degli utenti , ma i dati di tutti gli utenti nella tabella " utenti"
    < br >
    Protezione contro MySQL iniezioni

    Ci sono molti modi per proteggere contro MySQL iniezioni . In realtà le iniezioni di MySQL sono minacce solo se lo sviluppatore ha ignorato la minaccia e non è riuscito a proteggere il suo codice . Il modo più semplice per proteggere le iniezioni in combinazione PHP e MySQL è quello di utilizzare la funzione PHP : " mysql_real_escape_string "

    Tornando al primo esempio < $ username = $ _POST [ 'username' ] ; $ . . ? password = $ _POST [ 'password' ] ; $ query = "SELECT username, password FROM utenti WHERE username = ' $ username' e la password = ' $ password' " ; ? >

    per proteggere da MySQL iniezioni usi diretti di input utente devono befiltered attraverso " mysql_real_escape_string " . Funzione " mysql_real_escape_string " sfuggirà tutte MySQL caratteri speciali eliminando la possibilità di modificare il comportamento della nostra query

    < $ username = mysql_real_escape_string ( $ _POST [ 'username' ] ) . ? $ Password = mysql_real_escape_string ( $ _POST [ ,"'password' ] ) ; $ query = "SELECT username, password FROM utenti WHERE username = ' $ username' e la password = ' $ password' " ; ? >


    Previous :

    next :
      Articoli Correlati
    ·Come eliminare i cookie con PHP 
    ·Come installare PHP Live Chat su un Volusion negozio 
    ·Come convertire un numero in una stringa PHP 
    ·Come impostare un database per WordPress sul mio sito w…
    ·Come eseguire un file PHP esterno con JavaScript 
    ·Come sostituire un DIV in PHP 
    ·Come modificare un file XML in PHP 
    ·Come utilizzare il comando Array in PHP 
    ·Come scrivere script SQL 
    ·Come creare una sequenza in Oracle SQL 
      Articoli in evidenza
    ·Come creare un collegamento per un Jar in VBS 
    ·Come disabilitare gli avvertimenti PHP in Plesk 
    ·Che cosa fa VBA Supporto per 
    ·Come fare un menu a discesa in Visual Basic 
    ·Come elaborare XML & JDOM in Java 
    ·Gli effetti di buffer overflow e Stringhe di formato di…
    ·Che cosa è Microsoft WPF ? 
    ·Come leggere un file in un Listbox 
    ·Come collegare a un URL con VBS 
    ·Come combinare un if in PHP 
    Copyright © Conoscenza Informatica http://it.wingwit.com