SQL Injection

Autore: Peter Berry
Data Della Creazione: 13 Agosto 2021
Data Di Aggiornamento: 11 Maggio 2024
Anonim
SQL Injection For Beginners - Learn From A Pro Hacker Now
Video: SQL Injection For Beginners - Learn From A Pro Hacker Now

Contenuto

Definizione: cosa significa SQL Injection?

Un'iniezione SQL è un attacco informatico in cui il codice dannoso viene incorporato in un'applicazione mal progettata e quindi passato al database back-end. I dati dannosi producono quindi risultati di query del database o azioni che non avrebbero mai dovuto essere eseguite.


Un'introduzione a Microsoft Azure e Microsoft Cloud | In questa guida imparerai cos'è il cloud computing e in che modo Microsoft Azure può aiutarti a migrare ed eseguire la tua azienda dal cloud.

Techopedia spiega SQL Injection

Facciamo un esempio di un attacco di iniezione SQL:

Un'applicazione che esegue le operazioni di una banca contiene menu che possono essere utilizzati per cercare i dettagli del cliente utilizzando punti dati come il numero di previdenza sociale del cliente. Sullo sfondo l'applicazione chiama una query SQL che viene eseguita nel database passando i valori di ricerca immessi come segue:

SELEZIONA client_name, telefono, indirizzo, data_di_birth DOVE social_sec_no = 23425

In questo script di esempio, l'utente immette il valore 23425 nella finestra del menu dell'applicazione, chiedendo all'utente di immettere il numero di previdenza sociale. Quindi, utilizzando il valore fornito dall'utente, nel database viene eseguita una query SQL.

Un utente con conoscenza SQL può comprendere l'applicazione e, invece di immettere un singolo valore quando viene richiesto il numero di previdenza sociale, immettere la stringa "23425 o 1 = 1", che viene passata al database come segue:

SELEZIONA client_name, telefono, indirizzo, data_di_birth DOVE social_sec_no = 23425 o 1 = 1

La clausola WHERE è importante perché introduce vulnerabilità. In un database, la condizione 1 = 1 è sempre vera e poiché la query è stata specificata per restituire i dettagli del numero di previdenza sociale del client (23425) o WHERE 1 = 1, la query restituirà tutte le righe nella tabella, che non era la intenzione originale.

L'esempio di attacco di iniezione SQL sopra riportato è semplice, ma mostra come sfruttare una vulnerabilità per indurre l'applicazione a eseguire una query o un comando del database back-end.

Gli attacchi di SQL injection possono essere mitigati garantendo una corretta progettazione dell'applicazione, specialmente nei moduli che richiedono l'input dell'utente per eseguire query o comandi del database. Nell'esempio sopra, l'applicazione potrebbe essere modificata in modo da accettare un solo valore numerico.