SQL injection er et injektion angreb, hvor en hacker bruger/indskyder ondsindede SQL sætninger mod databaselageret i it-løsninger. Det kan hackeren fx bruge til at stjæle login information på en hjemmeside eller privat information om en virksomheds ansatte/kunder.
SQL injection kan fx også bruges til at slette data i en database. Det er derfor altid en god ide at tage backup af alt sin data og så forebygge mod SQL injections mest muligt. Du kan læse mere om forebyggelse af SQL injection længere nede i artiklen.
Det kan være at der en dag kommer en hacker forbi. I sådan en situation er det altid godt at have en backup til rådighed, så alt indhold kan genskabes, hvis uheldet er ude.
Eksempel på hvordan SQL injection virker.
Et eksempel med SQL injection tager typisk udgangspunkt i en normal login side, hvor en bruger indtaster brugernavn og kodeord for at komme ind på et sikkert netværk eller et brugeradministrationspanel på en hjemmeside.
Når en bruger prøver at logge ind, bliver login informationer sendt afsted til en web server. Der bliver lavet en SQL query (SQL kald) med oplysningerne, hvor der bliver tjekket i en database om brugeren er en rigtig bruger, og hvor meget denne bruger skal have adgang til – fx en normal bruger eller en admin bruger. Sagt med andre ord – hjemmesiden kontrollerer login siden og dens kommunikation med databasen gennem nogle bestemte kommandoer, hvor der bliver tjekket om det er en rigtig bruger i databasen, som prøver at logge ind.
Med SQL injection kan en hacker med de rigtige SQL kald forbipasserer en login formular – ved at se hvad der ligger bagved autentificeringen. Dette er kun muligt, hvis der ikke er blokeret for ”custom errors/scripts” som bliver sendt direkte til databasen.
SQL injection hacker
En SQL injection hacker har typisk en god viden omkring SQL queryes og de anvendte teknologier, som bliver brugt i den pågældende løsning. Hackeren kan dermed finde på kreative måder at bruge SQL på, som fx så bruges til udskrive vigtige database tabeller i en database. SQL injection er forholdsvist simpelt i forhold til andre hacking metoder. Det har gjort SQL injection til en af de mest populære måder at udfører hacking på.
Følsomme programmeringssprog og SQL injection
Der er mange programmeringssprog, som er følsomme over for sql injection: Coldfusion, PHP, Classic ASP, ASP.NET, JSP, og CGI. Det kan derfor altid anbefales at kontakte en ekspert i it sikkerhed, så SQL injection kan blive forebygget med muligt.
Hvordan beskytter man sig imod SQL injection
Det er svært at beskytte sig 100% imod SQL injection. Firewalls og lignende mekanismer hjælper fx ikke, da man er nød til at have sin hjemmeside åben for trafik, så de besøgende kan bruge hjemmesiden.
Hvis du vil øge beskyttelsen mod SQL injection i din it-løsning, kan du med fordel kigge nærmere på:
- Brugen af prepared statements med parameterized queries
- Brugen af Stored Procedures
- Input validering
Der findes mange gode artikler, som går i dybden med netop disse emner, så du kan lærer mere om SQL injection og beskyttelselse mod SQL injection.