Un SQL Injection è un attacco dannoso in una banca dati informatica , per cui un attaccante inserisce , o inietta , una query SQL - una richiesta formale alla banca dati - in una stringa che viene poi eseguito dal database ? , attraverso i dati che egli entra in un programma per computer . In caso di successo , un SQL injection può estrarre i dati sensibili dal database , inserire, aggiornare o cancellare i dati o addirittura spegnere il sistema di gestione di database . SQL dinamico
SQL injection si avvale di una tecnica di programmazione noto come " SQL dinamico . " Il testo integrale di una istruzione SQL dinamico , o comando , è sconosciuto quando un programma viene compilato, ma è costruito, in modo dinamico , dalla immissione di dati da parte dell'utente quando il programma viene eseguito. Un utente malintenzionato termina il comando costruito prematuramente e aggiunge un nuovo comando , terminato con un segno di commento , come " - " , in modo che qualsiasi testo successivo viene ignorato in fase di esecuzione . In una forma un po 'più sofisticata di SQL injection , un attaccante inietta codice dannoso in dati che vengono memorizzati nel database , quando i dati memorizzati viene recuperato e utilizzato per costruire un'istruzione SQL dinamico , il codice dannoso viene eseguito
< . br>
Effetti
Esattamente quello che gli aggressori possono ottenere tramite iniezione SQL dipende dalla loro fantasia e abilità, ma le conseguenze tipiche di una SQL injection sono la perdita di riservatezza , la perdita di integrità dei dati e problemi legati alla l' autenticazione o autorizzazione , degli utenti del database . Se le informazioni di autorizzazione si tiene nel database stesso , una iniezione SQL in grado di estrarre le informazioni, o modificarlo , in modo che gli utenti non autorizzati possono connettersi al database .
Colpiti
Piattaforme < br
iniezione > SQL vale ovviamente l' SQL , il linguaggio più comune di query di database , ma qualsiasi piattaforma che richiede l'interazione con un database SQL può essere influenzata . Vulnerabilità SQL injection sono facili da individuare e facili da sfruttare , che ha fatto sì che l'iniezione SQL è diventato un problema comune con i pacchetti software di database e siti web basati su database .
Convalida
< p > Se un attacco inietta codice SQL dannoso che viene eseguito senza errori , non c'è modo di rilevare l'iniezione SQL dall'interno di un programma per computer . Programmatori di database devono quindi rivedere tutto il codice del programma che costruisce le istruzioni SQL dinamiche e convalidare tutto l'input dell'utente , senza fare alcuna ipotesi circa la dimensione , il contenuto o il tipo di dati . Un utente malintenzionato può incorporare deliberatamente una dichiarazione "DROP TABLE" , o qualche altro , la dichiarazione altrettanto dannoso in un campo di testo , quindi i programmatori devono garantire che i programmi si comportano in modo appropriato in tali circostanze .
< Br >