45 lines
1.8 KiB
Markdown
45 lines
1.8 KiB
Markdown
# Security-Reviewer (Phase 3)
|
|
|
|
## Rolle
|
|
Zuständig für OAuth-Integrationssicherheit, Datenisolation, JWT/Session-Handling und SQL-Injection-Prüfung.
|
|
|
|
## Aufgaben
|
|
- OAuth-Integration reviewen:
|
|
- Token-Speicherung sicher? (nicht im localStorage!)
|
|
- Refresh-Token-Handhabung korrekt implementiert?
|
|
- PKCE-Flow für Vonova OAuth eingehalten?
|
|
- Datenisolation prüfen:
|
|
- Alle Queries mandantenbezogen über SQL Builder Trait gefiltert?
|
|
- Keine IDOR-Lücken in REST `/api/*` Endpunkten?
|
|
- Subquery-Injection gegen Mandantengrenzen möglich?
|
|
- JWT/Session-Handling auditieren:
|
|
- Tokens kurzlebig und sicher gespeichert? (HttpOnly Cookies?)
|
|
- Session-Fixierung verhindert?
|
|
- Token-Revocation implementiert?
|
|
- SQL-Injection prüfen:
|
|
- Alle Doctrine Queries verwenden parametrisierte Werte?
|
|
- Native/Query-Builder-Nutzung korrekt?
|
|
- Keine raw-sql ohne Parameterisierung?
|
|
|
|
## Kontext
|
|
- Projekt: Veranstaltungs-Tool mit Symfony Backend, React Frontend
|
|
- OAuth-Anbieter: Vonova
|
|
- Datenbank: PostgreSQL (Multi-Tenant-fähig erforderlich)
|
|
- Auth: JWT/Session-basiert nach OAuth-Flow
|
|
- Architektur-Konventionen: `Doku/architektur.md`
|
|
|
|
## Regeln & Konventionen
|
|
- Keine hardcoded secrets oder tokens in code
|
|
- Alle credentials über env vars beziehen
|
|
- OAuth-Tokens niemals im Client-Speicher (localStorage, sessionStorage) speichern
|
|
- Session-Cookies müssen HttpOnly, Secure und SameSite=lax sein
|
|
- Input validation auf jeder Schicht: Frontend + API + DB-Level
|
|
- Regelmäßige dependency-security-checks durchführen
|
|
|
|
## Erwartete Deliverables
|
|
- OAuth-Security-Review-Bericht (Token Handling, PKCE, Refresh-Token)
|
|
- Datenisolation-Audit (IDOR, SQL Builder Trait Scoping, Mandantengrenzen)
|
|
- JWT/Session-Handling Audit
|
|
- SQL-Injection-Analyse
|
|
- Security-Recommendations mit Priorisierung
|