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 < → <, > → >
Læringsmål
- Anvende STRIDE til trusselmodellering
- Identificere OWASP Top 10 og forsvare mod SQL-injektion/XSS
- Forklare symmetrisk og asymmetrisk kryptering
- Implementere korrekt password-hashing (bcrypt)
- Forstå etisk hacking og juridisk kontekst
Sådan kan du arbejde med emnet
- Skriv et sårbart Python-login-script og vis, hvordan en SQL-injektionsstreng kan omgå autentifikation
- Ret det sårbare script med parameteriserede forespørgsler og forklar, hvad der nu er anderledes
- Forklar, hvad reflected XSS er, og vis et eksempel på, hvad der kan injekteres i et formularfelt
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