Nwlapcug.com


Che cosa è una SQL Injection?

Che cosa è una SQL Injection?


Una SQL injection è un attacco dannoso su un database di computer, per cui un utente malintenzionato di inserire o inietta, una query SQL..--una formale richiesta al database-- in una stringa che alla fine viene eseguita dal database, tramite i dati che egli entra in un programma per computer. In caso di successo, che una SQL injection possono estrarre dati sensibili dal database, inserire, aggiornare o eliminare dati o anche spegnere il sistema di gestione di database.

SQL dinamico

Attacchi SQL injection si avvale di una tecnica di programmazione conosciuta come "SQL dinamico." Il testo integrale di un'istruzione SQL dinamica, o di comando, è sconosciuto quando un programma viene compilato, ma è costruito in modo dinamico, dai dati di input da parte dell'utente quando viene eseguito il programma. Un utente malintenzionato termina prematuramente il comando costruito e aggiunge un nuovo comando, terminato con un segno di commento, come "...", in modo che il testo successivo viene ignorato in fase di esecuzione. In una forma leggermente più sofisticata di SQL injection, un utente malintenzionato inserisce codice dannoso nei dati archiviati nel database; Quando i dati memorizzati sono recuperati e utilizzati per costruire un'istruzione SQL dinamica, viene eseguito il codice dannoso.

Effetti

Esattamente ciò che gli attaccanti possono raggiungere tramite l'iniezione SQL dipende dalla loro immaginazione e abilità, ma conseguenze tipiche di una SQL injection sono perdita di riservatezza, l'integrità dei dati e problemi legati all'autenticazione o autorizzazione, di utenti del database. Se informazioni di autorizzazione sono tenuti nel database stesso, una SQL injection possono estrarre le informazioni, o modificare, in modo che utenti non autorizzati possono connettersi al database.

Piattaforme interessate

Attacchi SQL injection si applica ovviamente lo SQL, il linguaggio di query di database più comune, ma qualsiasi piattaforma che richiede l'interazione con un database SQL può essere influenzata. Vulnerabilità di SQL injection sono facili da rilevare e facile da sfruttare, che ha significato che l'iniezione SQL è diventato un problema comune con pacchetti di software di database e siti Web basati su database.

Convalida

Se un attacco inietta codice dannoso di SQL che viene eseguito senza errori, non esiste alcun modo per rilevare attacchi di SQL injection all'interno di un programma per computer. I programmatori di database devono quindi rivedere tutto il codice programma che costruisce istruzioni SQL dinamiche e convalidare tutti gli input dell'utente, senza fare alcuna ipotesi circa la dimensione, il contenuto o il tipo di dati. Un utente malintenzionato potrebbe incorporare deliberatamente un'istruzione "DROP TABLE", o alcuni altri, altrettanto dannoso in un campo di testo, quindi i programmatori devono assicurarsi che i programmi si comportano in modo appropriato in tali circostanze.