Hva er en SQL-angrep?

En SQL-angrep, eller SQL-injeksjon angrep, involverer innsetting eller injeksjon, av ondsinnet kode i de verdier, eller variabler, som en bruker input i et dataprogram. Den ondsinnede koden er knyttet sammen, eller sammenkjedet med legitime SQL-kommandoer for å produsere en kommando som gir uventede resultater.

SQL

SQL, også kjent som Structure Query Language, er en industristandard språk for oppretting, oppdatering og spørring relasjonsdatabaser, eller databaser som består av flere filer av relatert informasjon, vanligvis lagret i tabeller av rader og kolonner. SQL er ofte innebygd i generelle programmeringsspråk for å lage programmer som tillater brukere å samhandle med en database. Et program kan inneholde SQL-setninger som "SELECT * FROM tabellnavn WHERE tabellnavn. Feltnavn = variabel" der tabellnavn er navnet på en tabell i databasen, er feltnavn navnet på en kolonne, eller felt, i tabellen, og variabel er en verdi innspill av brukeren.

alvorlighetsgrad

Alvorlighetsgraden av en SQL angrep er bare begrenset av angriperens fantasi og dyktighet. Ved strategisk sette semikolon (;) og dobbel bindestrek (-) tegn - som avgrenser SQL-kommandoer og kommentarer henholdsvis - angripere kan avslutte eksisterende kommandoer tidlig og legge sine egne nye kommandoer. Disse nye kommandoer kan for eksempel hente ut sensitive data fra databasen, endre eller slette data, eller gi angripere fulle administrative rettigheter til databasen. I eksempelet ovenfor, hvis SQL-setningen lese "SELECT FROM WHERE tabellnavn tabellnavn. Feltnavn = '» + variabel +' ";, en bruker kan legge inn flere SQL-kommandoer og så montere en spørring noe sånt som" SELECT FROM tablename.fieldname = ' somevalue '; DROP TABLE tabellnavn.

effekter

SQL-angrep vanligvis føre til tap av konfidensialitet og dataintegritet samt andre alvorlige problemer, slik at organisasjoner bør ta trusselen av SQL-angrep på alvor. SQL-angrep vanligvis oppstår når data kommer inn et program fra en uklarert kilde eller data brukes til å konstruere en SQL-spørring, eller begge deler dynamisk. SQL-angrep kan åpenbart påvirke SQL seg selv, men også alle plattformer som krever interaksjon med en SQL-database. Databasedrevne nettsteder er vanlige mål for SQL, rett og slett fordi angripere kan oppdage og utnytte SQL-feil enkelt.

Forebygging

Forutsatt at SQL-kode injiseres under en SQL angrep ikke inneholder syntaksfeil, vil det utføre vellykket og kan ikke oppdages programmatisk. Database programmerere må derfor validere alle brukerundersøkelser og nøye undersøke enhver programkode som konstruerer og utfører dynamiske SQL-kommandoer for sårbarheter.