Nwlapcug.com


Che cosa è un attacco SQL?

Un attacco SQL, o un attacco SQL injection, comporta l'inserimento, o l'iniezione di codice dannoso nel valori o variabili, che un utente inserisce in un programma per computer. Il codice dannoso è legato, o concatenato, con comandi SQL legittimi per produrre un comando che produce risultati imprevisti.

SQL

SQL, noto anche come struttura Query Language, è un linguaggio standard per la creazione, l'aggiornamento e l'interrogazione di database relazionali, o database composto da più file di informazioni correlate, solitamente memorizzati nelle tabelle di righe e colonne. SQL è spesso integrata in linguaggi di programmazione per creare programmi che consentono agli utenti di interagire con un database. Un programma potrebbe includere istruzioni SQL come "Selezionare * FROM tabella NomeTabella dove tablename. FieldName = nomevariabile "in cui tablename è il nome di una tabella nel database, fieldname è il nome di una colonna, o campo, in tale tabella, e nomevariabile è un valore in input dall'utente.

Livello di gravità

La gravità di un attacco SQL è limitata solo dalla fantasia e l'abilità dell'utente malintenzionato. Inserendo strategicamente il punto e virgola (;) e doppio caratteri trattino (-)-- che delimitano SQL comandi 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 eliminare dati o concedere gli attaccanti privilegi amministrativi completi al database. Nell'esempio precedente, se l'istruzione SQL leggere "SELECT FROM tablename dove tablename. nomecampo = ' "+ variablename +" "; un utente potrebbe immettere ulteriori comandi SQL e quindi assemblare una query qualcosa come" selezionare da tablename.fieldname = "somevalue"; DROP TABLE NomeTabella.

Effetti

Attacchi di tipo SQL in genere portano a perdita di riservatezza e integrità dei dati, nonché di altri gravi problemi, quindi organizzazioni dovrebbero prendere sul serio la minaccia di attacchi di tipo SQL. Attacchi di tipo SQL si verificano in genere quando i dati vengono immessi un programma da una fonte non attendibile o dati vengono usati per costruire in modo dinamico una query SQL, o entrambi. Attacchi SQL possono ovviamente influenzare SQL se stessa, 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

Fornito il codice SQL iniettato durante un attacco SQL contiene errori di sintassi, esso verrà eseguito correttamente e non può essere rilevato a livello di codice. I programmatori di database devono pertanto convalidare tutto l'utente di input ed esaminare attentamente qualsiasi codice di programma che costruisce ed esegue comandi SQL dinamici per le vulnerabilità.