SQL injection er en form for angreb man kan lave på en hjemmeside. Dette gøres ved enten at ændre i kildekoden til siden, eller ved at skrive kommando kode ind i søge eller indtastnings felt og så få den til at eksekvere kommandoer i stedet for bare at læse det.
Tag f.eks. følgende eksempel:
Det der er meningen at der skal ske er at hvis man indtaster det rigtige brugernavn og password bliver man logget ind. MEN! Der er et problem.
“SELECT * FROM users WHERE username = $user AND password = $pass”
Som du kan se bliver $username og $password sat ind i dette query. Det vil sige at alt hvad vi skriver i username og password feltet i vores form vil blive indsat i queryet. Hvis man så skriver ‘ or ‘1’=’1′ i begge felter vil vores query nu se sådan ud
“SELECT * FROM users WHERE username = or ‘1’=’1′ AND password = or ‘1’=’1′”
Da 1 altid er lige med 1 vil queryet blive true og vi vil derfor blive logget ind uden at have hverken brugernavn eller password. Det skal så lige siges at php efterhånden er så sikkert så dette kan ikke lade sig gøre med mindre slår et par sikkerhedsfunktioner fra i php.
Nedenfor ses en nummerplade skrevet i SQL, koden får en SQL server til at droppe sin database når det bliver læst ind. Dette blev brugt mod nummerplade scanner og fik serverne som kørte nummerplade skannerene til at tabe deres database.
W3schools.com’s guide til SQL injection – Link