Skip to content

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ßnahmeDetails
CORS Allowlistportal.mqa.group + Env-Merge
Auth auf sensitive APIsemail, pdf, ai-budget, ai-tender, ai-audit-readiness, analytics GET
/uploads geschütztauthenticate middleware
Cron fail-closedCRON_SECRET Pflicht in Production
Mock-Token blockiertProduction Frontend + Backend
Admin seed APINur Development
Deploy ohne Seeddocker-entrypoint.sh → migrate only
E-Mail redirect allowlistKein Open Redirect
HTML SanitizationDOMPurify in Frontend
Security Headersserve.json am Frontend
PDF DownloadAuth via fetch + Blob
Env ValidationSKIP_OAUTH_VALIDATION, CRON_SECRET, JWT, CORS
Media Hub → R2Presigned Uploads in MQA-Org-Bucket mqa-media (2026-08-04)
Developer DocsVitePress unter docs.mqa.group; HTTP Basic Auth wenn DOCS_PASSWORD auf mqa-docs gesetzt

Offen ⚠️ (priorisiert)

PrioritätThemaHinweis
HIGHJWT in sessionStorage → XSS-RisikoHttpOnly Cookies evaluieren
HIGHLegacy-Uploads auf Render ephemeral FSPDF-Generatoren, Audit/Branding-Multer schreiben noch nach /uploads/* — R2-Migration offen
HIGHIDOR Policies/Media/InquiriesCode-Review
MEDIUMPostgres IP-Allowlist einschränkenRender Dashboard
MEDIUMFrontend CSP verschärfenserve.json erweitern
MEDIUMSecret Rotation nach CF-MigrationAlte private R2-Keys widerrufen (T+7); siehe CLOUDFLARE-MIGRATION
MEDIUMDocs-ZugangskontrolleDOCS_PASSWORD auf Render mqa-docs setzen (Basic Auth; optional DOCS_USERNAME, Default mqa)
LOWPostgres RLSArchitektur-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:

  1. Lead Developer + MQA IT informieren
  2. Betroffene Secrets rotieren
  3. Render Logs + AuditLog prüfen
  4. GDPR: ggf. 72h-Meldefrist (Compliance)

Tests

bash
# Backend Security Tests
cd backend && npm test -- --testPathPattern=security

# npm audit (CI)
npm audit --audit-level=high

Nächste Review

Quartalsweise oder vor Major Release.