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 skadelige SQL-udsagn i inputfeltet for at manipulere databasen.

Dette angreb retter sig mod applikationer, der ikke korrekt håndterer validering, brugerinput, 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 indtaste et skadeligt SQL-udsagn.

For eksempel:

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

En angriber kunne indtaste:

' OR '1'='1

Resulterende i:

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

Dette returnerer altid sand, 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ør administrative operationer på databasen.
  • Kompromitter 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, kun tillad forventede tegn.

3. Brug ORM-frameworks

Frameworks som Prisma, Hibernate, etc., reducerer direkte SQL-håndtering.

4. Mindst privilegium-princip

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

5. Regelmæssig sikkerhedstest

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

Eksempel fra den virkelige verden

En onlinebutiks hjemmeside blev udsat for 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