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 skadelige SQL-setninger i 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, osv.

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 skadelig 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 innen cybersikkerhet. Denne typen angrep er konsekvent oppført i OWASP Top 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 informasjon.
  • Tidsbasert Blind SQLi : Utnytter serverens responstid for å gjette spørringsresultater.

Hvordan forhindre SQL-injeksjon

1. Bruk parameteriserte spørringer (forberedte uttalelser)

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

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

2. Inputvalidering og sanitisering

Valider all input fra brukere, 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 de rettigheter som er nødvendige.

5. Regelmessig sikkerhetstesting

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

Eksempel i den virkelige verden

En nettbutikk opplevde et brudd der angripere brukte en SQL-injeksjon i et påloggingsskjema for å hente kredittkortdetaljer fra databasen.

Relaterte begreper

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