Command Palette

Search for a command to run...

Ordliste SQL Injection (SQLi)

Hva er SQL-injeksjon (SQLi)?

SQL-injeksjon (SQLi) er en type angrep der angripere legger inn ondsinnede SQL-setninger i et inndatafelt for å manipulere databasen.

Dette angrepet retter seg mot applikasjoner som ikke håndterer validering og brukerinput riktig, og tillater uautorisert tilgang til sensitiv data som passord eller kredittkortdetaljer, etc.

Hvordan SQL-injeksjon fungerer

Når en applikasjon direkte inkluderer brukerinput i en databaseforespørsel uten riktig validering, kan angripere endre forespørselens oppførsel for å legge inn en ondsinnet SQL-setning.

For eksempel:

SELECT * FROM users WHERE username = 'admin' AND password = '12345';

En angriper kunne legge inn:

' OR '1'='1

Som resulterer i:

SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '';

Dette returnerer alltid sant, og gir uautorisert tilgang.

Hvorfor SQL-injeksjon er viktig i cybersikkerhet

SQL-injeksjon er den farligste og eldste teknikken i cybersikkerhet. Denne typen angrep er konsekvent oppført i OWASP Topp 10.

Selv små sårbarheter tillater en angriper å:

  • Tilgang, endre eller slette data
  • Omgå autentisering
  • Utføre administrative operasjoner på databasen.
  • Kompromittere hele systemet.

Vanlige typer SQL-injeksjon

  • Klassisk SQLi: Direkte injeksjon via webskjemaer eller URL-parametere.
  • Blind SQLi: Angripere utleder databaseinformasjon indirekte (f.eks. via feilmeldinger eller responstid).
  • Union-basert SQLi: Bruker UNION-operatøren for å kombinere resultater fra flere spørringer.
  • Feilbasert SQLi: Stoler på databasefeilmeldinger for å hente ut informasjon.
  • Tidsbasert blind SQLi: Utnytter serverens responstider for å gjette spørringsresultater.

Hvordan forhindre SQL-injeksjon

1. Bruk parameteriserte spørringer (forberedte utsagn)

Sørg for at SQL-kommandoer behandler brukerinput som data, ikke kjørbar kode.

cursor.execute("SELECT * FROM users WHERE username = ?", (username,))

2. Validering og sanitering av input

Valider all input fra brukere, og tillat kun forventede tegn.

3. Bruk ORM-rammeverk

Rammeverk som Prisma, Hibernate, etc., reduserer direkte SQL-håndtering.

4. Prinsippet om minst privilegium

Begrens brukerrettigheter, gi kun nødvendige tillatelser.

5. Regelmessig sikkerhetstesting

Bruk verktøy for applikasjonssikkerhetstesting som SAST, DAST eller IAST for å oppdage injeksjonsfeil tidlig.

Eksempel i den virkelige verden

Et nettsted for en nettbutikk ble utsatt for et brudd der angripere brukte en SQL-injeksjon i et innloggingsskjema for å hente ut kredittkortdetaljer fra databasen.

Relaterte termer

Neste Steg

Klar til å sikre dine applikasjoner? Velg din vei videre.

Bli med 500+ selskaper som allerede sikrer sine applikasjoner med Plexicus

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready