SQL-injektion
Från Rilpedia
SQL-injektion (engelska SQL injection) är ett sätt att utnyttja säkerhetsproblem i hanteringen av indata i vissa datorprogram som arbetar mot en databas. Injektionen sker genom att en användare skickar in parametrar till en databasfråga, utan att parametrarna transformeras korrekt med avseende på speciella tecken, som escapesekvenser. Med anpassade parametrar kan en användare kringgå inloggningssystem och manipulera data.
Metoden har fått sitt namn av databasfrågespråket SQL.
Exempel
Ett inloggningssystem skrivet i pseudokod skulle kunna skapa en SQL-sats för att undersöka om ett lösenord (det vill säga systemets indata) är korrekt:
$sqlquery = "SELECT * FROM users WHERE user = '" + $user + "' and password = '" + $password + "'"
Med användarnamnet anna
och lösenordet abc123
blir SQL-satsen:
SELECT * FROM users WHERE user = 'anna' AND password = 'abc123'
Om en illasinnad användare som lösenord skriver in ' OR '' = '
så blir SQL-satsen i stället:
SELECT * FROM users WHERE user = 'anna' AND password = '' OR '' = ''
Jämförelsen längst till höger mellan två tomma strängar kommer alltid att leda till att resultatet blir sant, och användaren kommer alltid att loggas in.