Et SQL angreb, eller SQL injektion angreb, indebærer indsættelse eller injektion, af skadelig kode i de værdier , eller variabler , at en bruger input til et edb-program. Den ondsindede kode er forbundet eller sammenkædet med legitime SQL-kommandoer til at producere en kommando, der giver uventede resultater. SQL
SQL , også kendt som Structure Query Language, er en industri - standard sprog til at skabe , opdatering og forespørge relationelle databaser, eller databaser omfatter flere filer relaterede oplysninger , som regel gemt i tabeller i rækker, og kolonner . SQL er ofte indlejret i generelle formål programmeringssprog til at skabe programmer, der tillader brugere at interagere med en database. Et program kan indeholde SQL-sætninger såsom "SELECT * FROM tabelnavn WHERE tabelnavn . Fieldname = variabelnavn ", hvor tabelnavn er navnet på en tabel i databasen , er fieldname navnet på en kolonne eller felt i tabellen , og variabelnavn er en værdi input fra brugeren.
Severity
sværhedsgraden af en SQL angreb er kun begrænset af hackerens fantasi og dygtighed. Ved strategisk indsætte semikolon (;) og dobbelt bindestreg (-) tegn - som afgrænser SQL-kommandoer og kommentarer henholdsvis - angribere kan opsige eksisterende kommandoer tidligt, og tilføje deres egne nye kommandoer. Disse nye kommandoer kan eksempelvis udtrække følsomme data fra databasen , ændre eller slette data , eller give angribere fuld administratorrettigheder til databasen. I ovenstående eksempel, hvis SQL-sætningen læses "SELECT * FROM tabelnavn WHERE tabelnavn fieldname = '". + Variabelnavn +' " , kunne en bruger indtaste yderligere SQL-kommandoer , og så samle en forespørgsel noget lignende" SELECT * FROM tablename.fieldname = ' somevalue « . DROP TABLE tabelnavn
Effects
SQL angriber typisk føre til tab af fortrolighed og dataintegritet samt andre alvorlige problemer, så organisationer bør tage truslen af SQL- angreb alvorligt. SQL angriber opstår typisk , når data kommer ind i et program fra en upålidelig kilde, eller data bliver brugt til dynamisk konstruere en SQL-forespørgsel , eller begge dele. SQL -angreb kan naturligvis påvirke SQL selv, men også enhver platform , der kræver interaktion med en SQL-database . Database-drevne websites er fælles mål for SQL , simpelthen fordi angribere kan opdage og udnytte SQL fejl nemt.
Forebyggelse
Forudsat SQL-kode injiceret i løbet af en SQL angreb indeholder ingen syntaksfejl , vil det udføre med succes og ikke kan registreres programmering. Database programmører skal derfor validere alle input fra brugeren og omhyggeligt undersøge ethvert program kode, der konstruerer og udfører dynamiske SQL- kommandoer for sårbarheder.