SQL-injektion

Forfatter: Peter Berry
Oprettelsesdato: 13 August 2021
Opdateringsdato: 22 Juni 2024
Anonim
SQL Injection For Beginners - Learn From A Pro Hacker Now
Video.: SQL Injection For Beginners - Learn From A Pro Hacker Now

Indhold

Definition - Hvad betyder SQL-injektion?

En SQL-injektion er et computerangreb, hvor ondsindet kode er indlejret i et dårligt designet program og derefter sendt til backend-databasen. De ondsindede data producerer derefter resultater eller databaseforespørgsler, der aldrig burde have været udført.


En introduktion til Microsoft Azure og Microsoft Cloud | Gennem denne vejledning lærer du, hvad cloud computing handler om, og hvordan Microsoft Azure kan hjælpe dig med at migrere og drive din virksomhed fra skyen.

Techopedia forklarer SQL Injection

Lad os gennemgå et eksempel på et SQL-injektionsangreb:

En applikation, der kører en banks operationer, indeholder menuer, der kan bruges til at søge efter kundeoplysninger ved hjælp af datapunkter, såsom kundens Social Security-nummer. I baggrunden kalder applikationen en SQL-forespørgsel, der kører i databasen ved at videregive de indtastede søgeværdier som følger:

VÆLG klientnavn, telefon, adresse, dato_fødsel WHERE social_sec_no = 23425

I dette prøveskript indtaster brugeren 23425-værdien i applikationsmenuvinduet og anmoder brugeren om at indtaste Social Security-nummeret. Derefter kører en SQL-forespørgsel i databasen ved hjælp af den angivne værdi af brugeren.

En bruger med SQL-viden kan muligvis forstå applikationen og i stedet for at indtaste en enkelt værdi, når han bliver spurgt om Social Security-nummeret, skal du indtaste strengen "23425 eller 1 = 1", som overføres til databasen som følger:

VÆLG klientnavn, telefon, adresse, dato for fødsel HVOR social_sec_no = 23425 eller 1 = 1

WHERE-klausulen er vigtig, fordi den indfører sårbarhed. I en database er betingelsen 1 = 1 altid sand, og fordi forespørgslen er blevet specificeret for at returnere klientens Social Security-nummeroplysninger (23425) eller HVOR 1 = 1, returnerer forespørgslen alle rækker i tabellen, hvilket ikke var oprindelig intention.

Ovenstående eksempel på SQL-injektionsangreb er enkelt, men det viser, hvordan man udnytter en sårbarhed til at narre applikationen til at køre en backend-databaseforespørgsel eller -kommando.

SQL-injektionsangreb kan afhjælpes ved at sikre korrekt applikationsdesign, især i moduler, der kræver brugerinput til at køre databaseforespørgsler eller kommandoer. I ovenstående eksempel kunne applikationen ændres, så den kun accepterer en numerisk værdi.