Command Palette

Search for a command to run...

Ordliste SQL Injection (SQLi)

Hvad er SQL Injection (SQLi)?

SQL Injection (SQLi) er en type angreb, hvor angribere indtaster en skadelig SQL-sætning i et inputfelt for at manipulere databasen.

Dette angreb retter sig mod applikationer, der ikke håndterer validering og brugerinput korrekt, hvilket tillader uautoriseret adgang til følsomme data såsom adgangskoder eller kreditkortoplysninger osv.

Hvordan SQL Injection virker

Når en applikation direkte inkluderer brugerinput i en databaseforespørgsel uden korrekt validering, kan angribere ændre forespørgslens adfærd for at indsætte en skadelig SQL-sætning.

For eksempel:

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

En angriber kunne indtaste:

' OR '1'='1

Hvilket resulterer i:

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

Dette returnerer altid true, hvilket giver uautoriseret adgang.

Hvorfor SQL Injection er vigtig i cybersikkerhed

SQL Injection er den farligste og ældste teknik inden for cybersikkerhed. Denne type angreb er konsekvent opført i OWASP Top 10.

Selv små sårbarheder tillader en angriber at:

  • Adgang, ændring eller sletning af data
  • Omgå autentifikation
  • Udføre administrative operationer på databasen.
  • Kompromittere hele systemet.

Almindelige typer af SQL Injection

  • Klassisk SQLi: Direkte injektion via webformularer eller URL-parametre.
  • Blind SQLi: Angribere udleder databaseinformation indirekte (f.eks. via fejlmeddelelser eller svartid).
  • Union-baseret SQLi: Bruger UNION-operatøren til at kombinere resultater fra flere forespørgsler.
  • Fejlbaseret SQLi: Afhænger af databasefejlmeddelelser for at udtrække information.
  • Tidsbaseret Blind SQLi: Udnytter serverens svartidsforsinkelser til at gætte forespørgselsresultater.

Hvordan man forhindrer SQL Injection

1. Brug parameteriserede forespørgsler (forberedte udsagn)

Sørg for, at SQL-kommandoer behandler brugerinput som data, ikke eksekverbar kode.

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

2. Inputvalidering og sanitering

Valider al input fra brugere, og tillad kun forventede tegn.

3. Brug ORM-rammer

Rammer som Prisma, Hibernate osv. reducerer direkte SQL-håndtering.

4. Mindste privilegium-princip

Begræns brugerrettigheder, og giv kun de nødvendige tilladelser.

5. Regelmæssig sikkerhedstestning

Brug applikationssikkerhedstestværktøjer som SAST, DAST eller IAST til at opdage injektionsfejl tidligt.

Eksempel i den virkelige verden

En onlinebutiks hjemmeside oplevede et brud, hvor angribere brugte en SQL-injektion i en loginformular til at udtrække kreditkortoplysninger fra dens database.

Relaterede termer

Next Steps

Klar til at sikre dine applikationer? Vælg din vej fremad.

Deltag i 500+ virksomheder, der allerede sikrer deres applikationer med Plexicus

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready