Übung: Formatierte Beschreibungen (XSS) #3

Open
opened 2026-11-02 11:56:02 +00:00 by trainer · 0 comments
Owner

Übung: Formatierte Beschreibungen (XSS)

Branch: exercise/xss-description · Schwierigkeit: einfach ·
Thema: Security (TypeScript/React)

Ausgangslage

Fachlicher Wunsch: Item-Beschreibungen sollen Formatierung enthalten
dürfen (fett, kursiv, Links). Die Umsetzung in
frontend/src/components/Items/columns.tsx rendert die Beschreibung
deshalb als HTML. Der Linter (Biome) hat sich beschwert — die Regel wurde
per biome-ignore stummgeschaltet. Die Pipeline ist grün.

Aufgabe

  1. PR von exercise/xss-description auf main öffnen.
  2. Das Problem benennen (OWASP: Cross-Site Scripting, Stored XSS).
    Welche Beschreibung würde ein Angreifer speichern
    (z. B. <img src=x onerror="alert(document.cookie)">)? Wer sieht sie?
  3. Bewerten: Was sagt es über eine Codebasis, wenn Linter-Regeln per
    Kommentar abgeschaltet werden dürfen? Wo gehört diese Entscheidung hin
    (Review, Hook, Konfiguration)?
  4. Fix vorschlagen: Beschreibung als Text rendern oder Markdown mit
    einer sanitisierenden Bibliothek (z. B. DOMPurify) — und die
    biome-ignore-Zeile entfernen.
  5. Review-Agenten laufen lassen, Findings abarbeiten. Merge erst nach
    Freigabe durch den Trainer.

Erwartetes Learning

  • Deterministische Prüfung (Linter) hätte es gefunden — wurde aber umgangen
  • Unterdrückungs-Kommentare sind ein Review-Signal
  • Ein Review-Agent ist die zweite Meinung, nicht das einzige Netz
# Übung: Formatierte Beschreibungen (XSS) **Branch:** `exercise/xss-description` · **Schwierigkeit:** einfach · **Thema:** Security (TypeScript/React) ## Ausgangslage Fachlicher Wunsch: Item-Beschreibungen sollen Formatierung enthalten dürfen (fett, kursiv, Links). Die Umsetzung in `frontend/src/components/Items/columns.tsx` rendert die Beschreibung deshalb als HTML. Der Linter (Biome) hat sich beschwert — die Regel wurde per `biome-ignore` stummgeschaltet. Die Pipeline ist grün. ## Aufgabe 1. PR von `exercise/xss-description` auf `main` öffnen. 2. Das Problem benennen (OWASP: *Cross-Site Scripting*, Stored XSS). Welche Beschreibung würde ein Angreifer speichern (z. B. `<img src=x onerror="alert(document.cookie)">`)? Wer sieht sie? 3. Bewerten: Was sagt es über eine Codebasis, wenn Linter-Regeln per Kommentar abgeschaltet werden dürfen? Wo gehört diese Entscheidung hin (Review, Hook, Konfiguration)? 4. Fix vorschlagen: Beschreibung als Text rendern **oder** Markdown mit einer sanitisierenden Bibliothek (z. B. DOMPurify) — und die `biome-ignore`-Zeile entfernen. 5. Review-Agenten laufen lassen, Findings abarbeiten. Merge erst nach Freigabe durch den Trainer. ## Erwartetes Learning - Deterministische Prüfung (Linter) hätte es gefunden — wurde aber umgangen - Unterdrückungs-Kommentare sind ein Review-Signal - Ein Review-Agent ist die zweite Meinung, nicht das einzige Netz
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
lab/full-stack-fastapi#3
No description provided.