Che cosa è un attacco di SQL?

February 23

Un attacco di SQL, o un attacco SQL injection, prevede l'inserimento, o l'iniezione, di codice dannoso nei valori o variabili, che un input dell'utente in un programma per computer. Il codice maligno è collegata, o concatenata, con i comandi SQL legittimo per la produzione di un comando che produce risultati inaspettati.

SQL

SQL, noto anche come Struttura Query Language, è un linguaggio standard di settore per la creazione, l'aggiornamento e l'interrogazione dei database relazionali, o database composto da più file di informazioni correlate, di solito memorizzati nelle tabelle di righe e colonne. SQL è spesso incorporato in linguaggi di programmazione general-purpose per creare programmi che consentono agli utenti di interagire con un database. Un programma potrebbe includere istruzioni SQL, come "SELECT * FROM tablename DOVE tablename. Nomecampo = nomevariabile", in cui tablename è il nome di una tabella nel database, nomecampo è il nome di una colonna, o un campo, in quel tavolo, e variablename è un ingresso valore dall'utente.

Gravità

La gravità di un attacco SQL è limitata solo dalla fantasia e l'abilità dell'attaccante. Inserendo strategicamente il punto e virgola (;) e doppio trattino - caratteri () - che delimitano i comandi SQL e commenti rispettivamente - attaccanti possono terminare prematuramente comandi esistenti e aggiungere i propri nuovi comandi. Questi nuovi comandi potrebbero, ad esempio, estrarre i dati sensibili dal database, modificare o cancellare i dati, o concedere attaccanti privilegi amministrativi completi al database. Nell'esempio di cui sopra, se l'istruzione SQL leggere "SELECT FROM tablename DOVE tablename. Nomecampo = '" + variablename +' ";, un utente potrebbe immettere i comandi SQL aggiuntivi e così assemblare un qualcosa di interrogazione come" SELECT FROM nome_tabella.nome_campo = ' someValue '; DROP TABLE nometabella.

effetti

attacchi SQL tipicamente portare alla perdita di riservatezza e l'integrità dei dati, così come altri problemi gravi, così le organizzazioni dovrebbero prendere la minaccia di attacchi SQL serio. attacchi SQL si verificano in genere quando i dati entra in un programma da una fonte non attendibile o dati vengono usati per costruire dinamicamente una query SQL, o entrambi. attacchi SQL possono ovviamente influire SQL in sé, ma anche qualsiasi piattaforma che richiede l'interazione con un database SQL. siti web basati su database sono obiettivi comuni per SQL, semplicemente perché gli attaccanti in grado di rilevare e sfruttare falle SQL facilmente.

Prevenzione

A condizione che il codice SQL iniettato durante un attacco di SQL non contiene errori di sintassi, si eseguirà con successo e non possono essere rilevati a livello di codice. i programmatori di database devono quindi convalidare tutto l'input dell'utente ed esaminare attentamente qualsiasi codice di programma che costruisce ed esegue i comandi SQL dinamiche per le vulnerabilità.