Hoppa till innehållet

SQL-injektion

Från Wikipedia
Version från den 19 januari 2010 kl. 03.59 av SieBot (Diskussion | Bidrag) (robot Lägger till: vi:SQL injection)

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.

Externa länkar