SQL-injektion

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

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

Personliga verktyg