? En SQL angrep, eller SQL-injeksjon angrep, innebærer innsetting eller injeksjon , av ondsinnet kode i de verdier, eller variabler , som en bruker innganger til et dataprogram . Den ondsinnede koden er koblet, eller sammensatt , med legitime SQL-kommandoer for å produsere en kommando som gir uventede resultater . SQL
SQL, også kjent som Structure Query Language , er en industri - standard språk for oppretting, oppdatering og spørring relasjonsdatabaser, eller databaser som omfatter flere filer av relatert informasjon , vanligvis lagret i tabeller av rader og kolonner. SQL er ofte innebygd i generelle programmeringsspråk til å lage programmer som tillater brukere å samhandle med en database . Et program kan inneholde SQL-setninger som " SELECT * FROM tablename HVOR tablename . Fieldname = variabelnavn " der tablename er navnet på en tabell i databasen, er fieldname navnet på en kolonne , eller felt , i denne tabellen , og variabelnavn er en verdi innskrevet av brukeren .
alvorlighetsgrad
alvorlighetsgraden av en SQL angrep er bare begrenset av angriperens fantasi og dyktighet. Ved å strategisk sette inn semikolon ( ;) og dobbel bindestrek (-) tegn - som begrenser SQL-kommandoer og kommentarer henholdsvis - angripere kan avslutte eksisterende kommandoer for tidlig og legge sine egne nye kommandoer . Disse nye kommandoer kan for eksempel trekke ut sensitive data fra databasen , endre eller slette data , eller gi angripere fulle administrative rettigheter til databasen . I eksempelet ovenfor , hvis SQL-setning lese "SELECT * FROM tablename WHERE tablename fieldname = . ' " + Variabelnavn +' "; , kan en bruker angi flere SQL-kommandoer og så montere en spørring noe sånt som" SELECT * FROM tablename.fieldname = ' somevalue '; . DROP TABLE tablename
Effects
SQL angriper vanligvis føre til tap av konfidensialitet og dataintegritet samt andre alvorlige problemer , så organisasjoner bør ta trusselen om SQL-angrep alvor. SQL angriper vanligvis oppstår når data går inn i et program fra en ikke-klarert kilde eller data brukes til dynamisk konstruere en SQL-spørring , eller begge deler. SQL-angrep kan selvsagt påvirke SQL seg selv, men også alle plattformer som krever interaksjon med en SQL database. Database - drevne nettsteder er vanlige mål for SQL , ganske enkelt fordi angripere kan oppdage og utnytte SQL- feil enkelt.
Prevention
Forutsatt at SQL-kode injiseres under en SQL angrepet inneholder ingen syntaksfeil , vil det utføre vellykket og ikke kan 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 .