SQL-injektion

Författare: Peter Berry
Skapelsedatum: 13 Augusti 2021
Uppdatera Datum: 10 Maj 2024
Anonim
SQL Injection For Beginners - Learn From A Pro Hacker Now
Video: SQL Injection For Beginners - Learn From A Pro Hacker Now

Innehåll

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.


En introduktion till Microsoft Azure och Microsoft Cloud | I hela denna guide kommer du att lära dig vad cloud computing handlar om och hur Microsoft Azure kan hjälpa dig att migrera och driva ditt företag från molnet.

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.