FAGPORTALEN

SQL-injektion og XSS

It A · STX · A-niveau · IT-sikkerhed

💻 SQL-injektion og XSS

SQL-injektion (SQLi) = angreb hvor angriber smugler SQL-kommandoer via input-felt → udføres af database.

Klassisk eksempel — usikker kode: query = "SELECT FROM users WHERE name='" + brugerInput + "'". Bruger indtaster: ' OR '1'='1 → query bliver SELECT FROM users WHERE name='' OR '1'='1' → matches ALLE rækker → potentielt log-in uden password!

Andre angreb: '; DROP TABLE users; -- → sletter hele tabellen.

Forsvar:

1.

Parameterized queries (prepared statements) — separat input fra SQL-syntaks. Python: cursor.execute("SELECT * FROM users WHERE name=?", (user_input,)).

2.

ORM (SQLAlchemy, Django ORM) — abstraherer SQL.

3. Input-validering + escape.

4.

Princip om mindst privilegium — DB-bruger kan kun det nødvendige.

Klassisk hack — Bobby Tables (xkcd #327): skole-database for elev "Robert'); DROP TABLE Students;--" sletter elev-tabellen. XSS (Cross-Site Scripting) = angriber smugler ondsindet JavaScript ind på en hjemmeside, der så udføres i ANDRES browsere.

3 typer:

1.

Stored XSS — script gemmes på serveren (fx i kommentar). Værst. Eksempel: ondsindet kode script-tag indlejret i kommentar der sætter document.location til evil.com med dokumentets cookie → stjæler cookies fra alle der ser kommentaren.

2.

Reflected XSS — script i URL → server returnerer det → udføres.

3.

DOM-based XSS — script ændrer DOM dynamisk uden server-roundtrip.

Forsvar: (1)

Output-escaping — konvertér < → &lt;, > → &gt;

Læringsmål

Sådan kan du arbejde med emnet

Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.

Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.

Prøv Fagportalen gratis

🤖 Denne side er skrevet med kunstig intelligens og fagligt gennemgået af Fagportalen, som har det redaktionelle ansvar. Finder du en fejl, så skriv til support@fagportalen.dk.