Security Status
Executive Overview — all summaries for decision-makers.
Letzte Aktualisierung: 2026-08-04
URL: https://docs.mqa.group/ops/SECURITY-STATUS — nicht
/docs/en/ops/…(Repo-Pfad ≠ Site-Pfad).
Implementiert ✅
| Maßnahme | Details |
|---|---|
| CORS Allowlist | portal.mqa.group + Env-Merge |
| Auth auf sensitive APIs | email, pdf, ai-budget, ai-tender, ai-audit-readiness, analytics GET |
/uploads geschützt | authenticate middleware |
| Cron fail-closed | CRON_SECRET Pflicht in Production |
| Mock-Token blockiert | Production Frontend + Backend |
| Admin seed API | Nur Development |
| Deploy ohne Seed | docker-entrypoint.sh → migrate only |
| E-Mail redirect allowlist | Kein Open Redirect |
| HTML Sanitization | DOMPurify in Frontend |
| Security Headers | serve.json am Frontend |
| PDF Download | Auth via fetch + Blob |
| Env Validation | SKIP_OAUTH_VALIDATION, CRON_SECRET, JWT, CORS |
| Media Hub → R2 | Presigned Uploads in MQA-Org-Bucket mqa-media (2026-08-04) |
| Developer Docs | VitePress unter docs.mqa.group; HTTP Basic Auth wenn DOCS_PASSWORD auf mqa-docs gesetzt |
Offen ⚠️ (priorisiert)
| Priorität | Thema | Hinweis |
|---|---|---|
| HIGH | JWT in sessionStorage → XSS-Risiko | HttpOnly Cookies evaluieren |
| HIGH | Legacy-Uploads auf Render ephemeral FS | PDF-Generatoren, Audit/Branding-Multer schreiben noch nach /uploads/* — R2-Migration offen |
| HIGH | IDOR Policies/Media/Inquiries | Code-Review |
| MEDIUM | Postgres IP-Allowlist einschränken | Render Dashboard |
| MEDIUM | Frontend CSP verschärfen | serve.json erweitern |
| MEDIUM | Secret Rotation nach CF-Migration | Alte private R2-Keys widerrufen (T+7); siehe CLOUDFLARE-MIGRATION |
| MEDIUM | Docs-Zugangskontrolle | DOCS_PASSWORD auf Render mqa-docs setzen (Basic Auth; optional DOCS_USERNAME, Default mqa) |
| LOW | Postgres RLS | Architektur-Entscheidung |
Security Audit Referenz
Vollständiger Audit 2026-08-03 im Chat / Agent-Transcript.
CRITICAL-Fixes aus Audit: behoben (Stand Deploy 094f298).
Meldeprozess
Security-Vorfall:
- Lead Developer + MQA IT informieren
- Betroffene Secrets rotieren
- Render Logs + AuditLog prüfen
- GDPR: ggf. 72h-Meldefrist (Compliance)
Tests
bash
# Backend Security Tests
cd backend && npm test -- --testPathPattern=security
# npm audit (CI)
npm audit --audit-level=highNächste Review
Quartalsweise oder vor Major Release.