Hem säkerhet Vad är en sql-injektion? - definition från techopedia

Vad är en sql-injektion? - definition från techopedia

Innehållsförteckning:

Anonim

Definition - Vad betyder SQL Injection?

En SQL-injektion är en datorattack där skadlig kod är inbäddad i ett dåligt utformat program och sedan skickas till backend-databasen. De skadliga uppgifterna producerar sedan databasfrågor eller handlingar som aldrig borde ha utförts.

Techopedia förklarar SQL Injection

Låt oss gå igenom ett exempel på en SQL-injektionsattack:


En applikation som kör en banks verksamhet innehåller menyer som kan användas för att söka efter kundinformation med hjälp av datapunkter som kundens personnummer. I bakgrunden anropar applikationen en SQL-fråga som körs i databasen genom att lämna de angivna sökvärdena enligt följande:


VÄLJ klientnamn, telefon, adress, datum_födelse VAR social_sec_no = 23425


I det här exempelskriptet anger användaren 23425-värdet i applikationsmenyfönstret och ber användaren att ange personnummer. Sedan, med det värde som tillhandahålls av användaren, körs en SQL-fråga i databasen.


En användare med SQL-kunskap kan förstå applikationen och, istället för att ange ett enda värde när han frågas om Social Security-numret, ange strängen "23425 eller 1 = 1, " som skickas till databasen enligt följande:


VÄLJ klientnamn, telefon, adress, datum_födelse VAR social_sec_no = 23425 eller 1 = 1


WHERE-klausulen är viktig eftersom den introducerar sårbarhet. I en databas är villkoret 1 = 1 alltid sant, och eftersom frågan har angetts för att returnera klientens sociala säkerhetsnummerinformation (23425) eller VAR 1 = 1 kommer frågan att returnera alla rader i tabellen, vilket inte var original avsikt.


Ovanstående exempel på SQL-injektionsattack är enkelt, men det visar hur man utnyttjar en sårbarhet för att lura applikationen till att köra en backend-databasfråga eller -kommando.


SQL-injektionsattacker kan mildras genom att säkerställa korrekt applikationsdesign, särskilt i moduler som kräver användarinmatning för att köra databasfrågor eller kommandon. I exemplet ovan kan applikationen ändras så att den endast accepterar ett numeriskt värde.

Vad är en sql-injektion? - definition från techopedia