Innholdsfortegnelse:
Definisjon - Hva betyr SQL Injection?
En SQL-injeksjon er et dataangrep der ondsinnet kode er innebygd i et dårlig designet program og deretter sendt til backend-databasen. De ondsinnede dataene produserer da resultatresultater eller handlinger for databaser som aldri burde vært utført.
Techopedia forklarer SQL Injection
La oss gå gjennom et eksempel på et SQL-injeksjonsangrep:
En applikasjon som driver en banks virksomhet, inneholder menyer som kan brukes til å søke etter kundedetaljer ved å bruke datapunkter som kundens personnummer. I bakgrunnen kaller applikasjonen et SQL-spørsmål som kjøres i databasen ved å sende de angitte søkeverdiene som følger:
VELG klientnavn, telefon, adresse, dato for fødsel WHERE social_sec_no = 23425
I dette eksempelskriptet legger brukeren inn 23425-verdien i programmenyen, og ber brukeren om å oppgi personnummer. Deretter kjører et SQL-spørsmål i databasen ved å bruke verdien som er gitt av brukeren.
En bruker med SQL-kunnskap kan forstå applikasjonen, og i stedet for å oppgi en enkelt verdi når du blir spurt om personnummer, skriver du inn strengen "23425 eller 1 = 1, " som blir sendt til databasen som følger:
VELG klientnavn, telefon, adresse, dato for fødsel WHERE social_sec_no = 23425 eller 1 = 1
WHERE-leddet er viktig fordi den introduserer sårbarhet. I en database er betingelsen 1 = 1 alltid sann, og fordi spørringen er spesifisert for å returnere klientens personnummer (23425) eller HVOR 1 = 1, vil spørringen returnere alle rader i tabellen, som ikke var opprinnelig intensjon.
Ovenstående eksempel på SQL-injeksjonsangrep er enkelt, men det viser hvordan man utnytter en sårbarhet for å lure applikasjonen til å kjøre en backend-database-spørring eller -kommando.
SQL-injeksjonsangrep kan dempes ved å sikre riktig applikasjonsdesign, spesielt i moduler som krever brukerinndata for å kjøre databasespørsmål eller kommandoer. I eksemplet over kan applikasjonen endres slik at den bare godtar en numerisk verdi.




