Kontaktformular eines Handwerksbetriebs härten
Einstieg EinstiegEine Schreinerei in Sursee hat auf ihrer Website ein Kontaktformular, dessen Einträge in einer Datenbank gespeichert und im Admin-Bereich angezeigt werden. Ein Testeintrag mit Script-Tag hat im Admin-Bereich ein Popup ausgelöst.
- Die XSS-Lücke nachstellen und erklären, warum sie gefährlich ist
- Die Speicherung auf parametrisierte Abfragen prüfen und anpassen
- Ausgabe im Admin-Bereich korrekt escapen und eine CSP setzen
Tipp anzeigenTipp
Validierung beim Speichern ist gut, aber das Escaping bei der Ausgabe ist der eigentliche Schutz gegen XSS.
Lösungsskizze anzeigenLösungsskizze
Nachweis mit einem harmlosen Script-Payload. Datenbankzugriff über Prepared Statements. Ausgabe über Template-Engine mit automatischem Escaping statt innerHTML. Header Content-Security-Policy mit default-src 'self'; script-src 'self' (Schlüsselwort in einfachen Anführungszeichen), Session-Cookie HttpOnly. Nachkontrolle mit demselben Payload.