Iniezione SQL

Un'iniezione SQL è una forma di attacco informatico che prende di mira database collegati a siti web e applicazioni web. Questi attacchi sfruttano software del server del sito web e del database configurati in modo non corretto per indurre un server a interpretare istruzioni SQL che altrimenti non eseguirebbe. Questi attacchi possono rivelare informazioni personali e finanziarie sensibili, consentire a un aggressore di modificare o eliminare informazioni memorizzate in un database oppure fornire altri accessi non autorizzati.

Un sito web è vulnerabile a un'iniezione SQL quando accetta dati inseriti dall'utente tramite un modulo di testo e li include come parte di una query SQL. Invece di compilare il campo del modulo con le informazioni previste, come un nome utente, l'aggressore inserisce una stringa di testo che modifica la query SQL. Per esempio, una query ipotetica potrebbe iniziare con SELECT UserID, Name, Password FROM Users WHERE UserID = , seguita dai dati inseriti in un campo del modulo per l'ID utente. Se l'utente inserisce il proprio ID utente, la query funziona come previsto e mostra le sue informazioni.

Un aggressore inserisce testo imprevisto in un'istruzione di query per modificarla

Tuttavia, se il server inserisce il testo immesso nella query senza applicare restrizioni, un aggressore può usarlo per modificare l'istruzione SQL stessa. Se invece di un ID utente qualcuno inserisce il testo 317 OR 1=1, la query diventa SELECT UserID, Name, Password FROM Users WHERE UserID = 317 OR 1=1;. Poiché OR 1=1 restituisce sempre un valore vero, sostituisce l'ID utente; la query restituisce invece gli ID utente, i nomi e le password di tutte le voci nella tabella Users. Altri tipi di inserimento di codice possono consentire a un aggressore di accedere come amministratore del sito, eliminare record o tabelle da un database oppure, in alcuni casi estremi, inserire ed eseguire script shell e altro codice.

Un amministratore del sito può prevenire gli attacchi di iniezione SQL mantenendo aggiornato il software del server. È inoltre importante "sanificare" i dati inseriti nel database limitando il testo immesso o filtrando determinati caratteri. Gli amministratori dei siti web possono anche parametrizzare le query SQL, usando segnaposto nella query che fanno riferimento ai dati inseriti dall'utente invece di inserirli direttamente nella query.

Aggiornato March 20, 2023 da Brian P.

quizMetti alla prova le tue conoscenze

When does a program create a dynamic link to a DLL file?

A
When it is compiled
0%
B
During installation
0%
C
At runtime
0%
D
When it crashes
0%
Correct! Incorrect!     View the DLL definition.
More Quizzes →

Il dizionario informatico Tech Terms

La definizione di Iniezione SQL in questa pagina è una definizione originale scritta dagli autori di TechTerms.com. Se desideri fare riferimento a questa pagina o citare questa definizione, utilizza la barra di citazione verde direttamente sotto la definizione.

Il nostro obiettivo è spiegare la terminologia informatica in modo semplice e comprensibile. Ci impegniamo per l'accuratezza e la semplicità in ogni definizione pubblicata. Se hai commenti o vuoi suggerire un nuovo termine tecnico, contattaci.

La newsletter di Tech Terms

Migliora le tue conoscenze tecniche con la nostra newsletter giornaliera o settimanale! Iscriviti oggi e ricevi nuovi termini e quiz nella tua casella di posta.

Iscriviti alla newsletter gratuita di TechTerms

Con quale frequenza desideri ricevere un'e-mail?

Puoi annullare l'iscrizione o modificare la frequenza in qualsiasi momento tramite i link presenti in ogni e-mail. Domande? Contattaci.

Nota: La newsletter viene inviata in inglese.