Commit Graph

  • aa0900410b Pentest 2026-05-24 Pen-31-Befunde (2x MEDIUM) duffyduck 2026-05-24 15:38:16 +02:00
  • 897abc7b21 Datenschutzerklärung als unterschreibbare PDF-Vorlage duffyduck 2026-05-24 15:30:11 +02:00
  • 69a52ffe03 README: Admin-Initial-Passwort ist seit Pentest-12 zufällig duffyduck 2026-05-24 14:56:55 +02:00
  • 771f46d2ac Vertragsansicht: Kunden-Schnellansicht-Modal + Cent/Euro-Input duffyduck 2026-05-24 14:41:37 +02:00
  • 20d42c5270 Energie-Bonus aufgeteilt in Sofort + Neukunden duffyduck 2026-05-24 14:27:54 +02:00
  • 92c3b0dc95 docker-compose: SSRF_BLOCK_PRIVATE_IPS-Env durchreichen duffyduck 2026-05-20 20:18:55 +02:00
  • 83cd737e81 README: SSRF_BLOCK_PRIVATE_IPS dokumentiert (Cloud-Deploy) duffyduck 2026-05-20 20:17:05 +02:00
  • a95aa384a2 Pentest 2026-05-20 Pen-30-Befunde (MEDIUM+INFO) duffyduck 2026-05-20 20:14:59 +02:00
  • 9cf8c505af Pentest 2026-05-20 Pen-29-Befunde (LOW/INFO) duffyduck 2026-05-20 18:47:44 +02:00
  • 65ec07e274 Pentest 2026-05-20 Pen-28-Befunde (LOW/INFO) duffyduck 2026-05-20 17:46:15 +02:00
  • 8e48d3b432 Pentest 2026-05-20 LOW/INFO Sammelfix duffyduck 2026-05-20 07:49:06 +02:00
  • adc3b70492 Pentest 2026-05-20 MEDIUM+LOW Follow-ups duffyduck 2026-05-20 01:13:19 +02:00
  • bf7afdd9a6 Pentest KRITISCH: Backup-Restore braucht Confirm-Body duffyduck 2026-05-20 01:05:00 +02:00
  • b3a6620da6 XSS-Sanitization für AppSettings (companyName & Co) duffyduck 2026-05-19 12:49:19 +02:00
  • 8ee5c9b07a Rollen+Permissions-Sync beim Container-Start duffyduck 2026-05-19 12:41:39 +02:00
  • 37df8c0c4a Backup-Operations-Log + EBUSY-Fix beim Restore duffyduck 2026-05-19 11:53:04 +02:00
  • 95541e8ac4 fix: DSGVO-Rolle sieht Menüpunkte in Einstellungen wieder duffyduck 2026-05-19 08:44:48 +02:00
  • 6ae815393e backup-restore: vollständiger Stack im Server-Log + lesbare UI-Details duffyduck 2026-05-19 08:30:13 +02:00
  • 06c427ee39 backup-restore: Toast bei Erfolg, ausführliche Fehlermeldung im Dialog duffyduck 2026-05-19 08:20:16 +02:00
  • 2cb6f172c9 Login-Rate-Limit pro (IP + Email)-Tupel + PUT /portal verbietet password duffyduck 2026-05-18 21:18:59 +02:00
  • 0f2dc44e45 cleanup: hacker@-Marker raus (legitime Nachnamen "Hacker") duffyduck 2026-05-18 20:50:36 +02:00
  • b87a2a3d08 fix: Cleanup im echten Entrypoint + idempotente Migration duffyduck 2026-05-18 20:24:33 +02:00
  • 48fe69cdab Security-Hardening Runde 17: JWT-TTL + Pentest-Marker-Detection duffyduck 2026-05-18 20:06:03 +02:00
  • 373fab8e83 Security-Hardening Runde 16: KRITISCH – Update-Responses sanitisieren duffyduck 2026-05-18 18:43:45 +02:00
  • 5ffd1a4d2c fix: prisma.ts baut DATABASE_URL aus DB_*-Vars (für docker exec) duffyduck 2026-05-18 15:57:15 +02:00
  • 7b9a1981a7 fix: src/ ins Runtime-Image, damit prisma/*.ts-Wartungsskripte laufen duffyduck 2026-05-18 15:53:52 +02:00
  • 3dda83314a Admin-Rescue: PW-Reset direkt in DB + Rate-Limit-Reset duffyduck 2026-05-18 15:47:02 +02:00
  • 3e1fc3eab2 Mitarbeiter-Passwörter auf 25 Zeichen (BSI-Empfehlung) duffyduck 2026-05-18 15:19:58 +02:00
  • cf8c6c84c2 Security-Hardening Runde 15: Pentest Runde 12 Folge-Fixes duffyduck 2026-05-18 15:09:13 +02:00
  • d545790a69 Security-Hardening Runde 14: Factory-Reset, Settings-Whitelist, Prisma-Leak, XSS-Strip duffyduck 2026-05-18 05:23:12 +02:00
  • ef238b0145 Security-Hardening Runde 13: Live-Vollmacht-Konsistenz + embedded DTOs duffyduck 2026-05-17 21:47:20 +02:00
  • 7b6b586033 fix: PortalPrivacy weiße Seite – Hooks-Reihenfolge nach early-return duffyduck 2026-05-17 09:33:40 +02:00
  • 3dea381983 fix: UUID-Hashes (Datenschutz-Link) nicht als truncated-ID blocken duffyduck 2026-05-17 09:21:52 +02:00
  • 28c91759df Security-Hardening Runde 12: Information-Disclosure + Input-Validation duffyduck 2026-05-17 08:51:52 +02:00
  • c744eebfa3 Rate-Limit-Liste: bereits freigegebene IPs ausblenden duffyduck 2026-05-17 01:26:12 +02:00
  • 956bc394b8 Rate-Limit-Sperren: Admin-UI zum Freigeben duffyduck 2026-05-17 01:20:43 +02:00
  • 69b9a35674 Security-Hardening Runde 11: Pentest Runde 7 (Portal-PW + Download-Tokens) duffyduck 2026-05-17 00:40:00 +02:00
  • a982795388 Security-Hardening Runde 10: Pentest Runde 6 (8 Findings + struktureller Audit-Sweep) duffyduck 2026-05-16 23:47:17 +02:00
  • 38c2d82c02 Security-Hardening Runde 9: Pentest Runde 5 duffyduck 2026-05-16 22:57:09 +02:00
  • 75c833500e Security-Hardening Runde 8: Cockpit-IDOR (Portal sah ALLE Kunden) duffyduck 2026-05-16 19:55:38 +02:00
  • a7d12b8540 Security-Hardening Runde 7: Pentest Runde 3 (3 Findings) duffyduck 2026-05-16 19:39:02 +02:00
  • 8534be22d0 Einmalpasswort-Flow für Portal-Credentials duffyduck 2026-05-16 18:48:13 +02:00
  • f0c97cd46d todo.md: Passwort-Komplexität + Real-IP-Fix dokumentiert duffyduck 2026-05-16 18:26:52 +02:00
  • 8a5ffbb563 Passwort-Komplexität + Portal-Credentials-UX duffyduck 2026-05-16 18:26:11 +02:00
  • 6af1a4bbd4 fix(security): trust proxy = 1 bei HTTPS_ENABLED – echte Client-IP statt Proxy-IP duffyduck 2026-05-16 18:24:21 +02:00
  • 92d2e62e79 security: portalPasswordHash + Encrypted aus embedded customer in /contracts/* entfernen duffyduck 2026-05-16 18:06:01 +02:00
  • 08310ac302 security: CRITICAL IDOR-Fix auf Stressfrei-Email-Sub-Routes duffyduck 2026-05-16 17:47:54 +02:00
  • 72f7a9dbdb docs: BREACH-/-Marker konkret entfernen – exact-match-Location erklärt duffyduck 2026-05-16 17:35:48 +02:00
  • c5dc271759 docs: BREACH-Marker auf SPA-Root / als bewusst akzeptiert dokumentieren duffyduck 2026-05-16 16:59:49 +02:00
  • 1451e362ff chore(env): JWT_EXPIRES_IN 15m + JWT_REFRESH_EXPIRES_IN dokumentieren duffyduck 2026-05-16 16:53:40 +02:00
  • 8188d17c87 fix(gdpr): processedBy aus useAuth statt totem localStorage('user') duffyduck 2026-05-16 16:51:02 +02:00
  • c4e62f0f50 docs: Pentest-Runden 11 + 12 in SECURITY-HARDENING + README aktualisieren duffyduck 2026-05-16 16:12:05 +02:00
  • 9830ac29a5 security: JWT raus aus localStorage – Refresh-Cookie-Pattern für SPA duffyduck 2026-05-16 16:06:17 +02:00
  • 0943f11999 security: Audit-Log für alle Klartext-Passwort-Reads (CRITICAL) duffyduck 2026-05-16 15:33:26 +02:00
  • e2cd26a29e feat(monitoring): Manueller Refresh-Button im Sicherheits-Monitoring-Log duffyduck 2026-05-16 15:20:00 +02:00
  • f6df97226d feat(email): Weiterleiten + Erneut senden im Detail-Pane duffyduck 2026-05-16 14:46:44 +02:00
  • 185b38dc55 feat(email): Suchleiste + erweiterte Filter im Email-Postfach duffyduck 2026-05-16 14:31:43 +02:00
  • 51eb12b414 fix(stressfrei): Refresh-Button nur bei provisioned + Auto-Heilung im Status-Sync duffyduck 2026-05-16 14:11:47 +02:00
  • c2ebc7cf1e fix(stressfrei): sync-forwarding sichtbar + Passwort-Push + Toast-Meldungen duffyduck 2026-05-16 14:06:26 +02:00
  • b4be3cebfb feat(stressfrei): Weiterleitungen manuell synchronisieren duffyduck 2026-05-16 13:53:48 +02:00
  • 083913cadb docs: README – more_clear_headers Server X-Served-By dazu (Banner weg) duffyduck 2026-05-16 13:36:49 +02:00
  • 4c0cc90734 docs: README – BREACH-Schutz via gzip off für /api/* am Reverse-Proxy duffyduck 2026-05-16 13:33:54 +02:00
  • 70e97d3ece security: Header-Hygiene-Runde 11 (Pentest-Cleanup) duffyduck 2026-05-16 11:46:49 +02:00
  • 8dff0310a6 fix(csp): frame-ancestors auf 'self' – PDF-Vorschau-iframe ging nicht duffyduck 2026-05-07 20:10:42 +02:00
  • ab971618d5 factory-import: --save-as-builtin Flag + README-Überarbeitung duffyduck 2026-05-07 20:04:02 +02:00
  • 4407bbfbb8 factory-defaults: CLI-Sync zwischen dev und prod duffyduck 2026-05-07 19:51:19 +02:00
  • 365c7994d5 factory-defaults: builtin-Werkseinstellungen beim Auto-Seed einspielen duffyduck 2026-05-07 19:41:16 +02:00
  • 2c7a87ccd3 factory-defaults: HTML-Templates + Import über UI duffyduck 2026-05-07 19:26:33 +02:00
  • 45f63d1c48 docs: User-DSGVO-/Entwickler-Zugriff-Fix in Erledigt-Liste duffyduck 2026-05-07 18:27:18 +02:00
  • 2d3ca28691 fix(users): DSGVO-/Entwickler-Zugriff über User-Update durchreichen duffyduck 2026-05-07 18:27:02 +02:00
  • 4201a90fd0 docs: HTTPS_ENABLED-Flag in Erledigt-Liste dokumentieren duffyduck 2026-05-07 18:00:56 +02:00
  • 3fb1925a98 security: HTTPS-only-Header per HTTPS_ENABLED-Flag steuern duffyduck 2026-05-07 18:00:01 +02:00
  • 63ebf3e75f db: tsx in production-deps + npx-Prefix für seed-Command duffyduck 2026-05-07 17:23:06 +02:00
  • 27a0fdbc45 db: Prisma-Migrations-System statt db push (datenerhaltend) duffyduck 2026-05-07 17:02:35 +02:00
  • 6f293211a4 docker: Auto-Seed bei leerer DB (kein RUN_SEED-Toggle nötig) duffyduck 2026-05-07 15:37:34 +02:00
  • 70e5190594 docker: DATABASE_URL im entrypoint URL-encoden (Sonderzeichen-Bug auf Prod) duffyduck 2026-05-07 15:25:13 +02:00
  • 7d07d52774 docker: App-User statt root für DB-Connection nutzen duffyduck 2026-05-07 15:06:43 +02:00
  • 75c1f9a7bb docker-compose url duffyduck 2026-05-07 14:58:13 +02:00
  • 62010b05d5 .env: DATABASE_URL aus DB_*-Komponenten zusammenbauen (kein Doppel-Pflegen) duffyduck 2026-05-07 14:41:39 +02:00
  • e401c11e40 removed docker veriosn from docker-compose.yml duffyduck 2026-05-07 14:27:37 +02:00
  • d206b360a6 security: Permissions-Policy-Header setzen (Pentest-Finding) duffyduck 2026-05-05 15:25:27 +02:00
  • 096aa63c6f security: Content-Security-Policy aktivieren (Pentest-Finding) duffyduck 2026-05-05 15:22:01 +02:00
  • 77602bb4ac contracts: VVL (Vertragsverlängerung) als Split-Button neben Folgevertrag duffyduck 2026-05-03 09:12:39 +02:00
  • e763952a84 adminer: Theme-Bootstrap für Designs mit non-Standard CSS-Filenamen duffyduck 2026-05-02 10:26:20 +02:00
  • 3823f8aa50 backup: SecurityEvent-Tabelle im Backup + Restore mit aufnehmen duffyduck 2026-05-02 10:19:18 +02:00
  • 0671565433 docker: Runtime auf node:20-slim (Alpine→Debian) – Prisma+TLS-Kompatibilität duffyduck 2026-05-01 20:05:37 +02:00
  • e145edaa90 docker: zentrale .env + Compose mit MariaDB+OpenCRM+Adminer + Bind-Mounts duffyduck 2026-05-01 18:53:19 +02:00
  • 3b4a680326 chore: backend/.env aus Git entfernt + .gitignore klargestellt duffyduck 2026-05-01 18:35:00 +02:00
  • 389b878dbd Monitoring: Threshold-Debounce auf sliding-window (statt floor-to-hour) duffyduck 2026-05-01 10:11:52 +02:00
  • 96feb6a663 v1.1.0: Production-readiness Release v1.1.0 duffyduck 2026-05-01 09:42:56 +02:00
  • 49905aa97e Monitoring: Pagination mit Seitenzahlen + Anfang/Ende-Buttons duffyduck 2026-05-01 09:36:40 +02:00
  • e2fdb069ac Monitoring UX: Log leeren + PageSize wählbar duffyduck 2026-05-01 09:31:53 +02:00
  • 0cf3dd6a7b Security-Hardening Runde 10: Security-Monitoring + Alerting duffyduck 2026-05-01 09:25:47 +02:00
  • 45fe270a38 Security-Hardening Runde 9: Diminishing returns duffyduck 2026-05-01 08:47:20 +02:00
  • 73f271ae03 docs: todo.md von backend/ nach docs/ verschoben duffyduck 2026-05-01 08:23:27 +02:00
  • 4385ae575d docs: Security-Hardening in eigene MD ausgelagert + Live-Tabellen duffyduck 2026-05-01 08:15:38 +02:00
  • 6b804cdc82 Security-Hardening Runde 8: DNS-Rebinding + Per-File-Ownership duffyduck 2026-05-01 07:59:19 +02:00
  • df6eb9724d Security-Hardening Runde 7: SSRF-Schutz + Logout-Endpoint duffyduck 2026-05-01 07:47:26 +02:00
  • 0c0cecdbbd Security-Hardening Runde 6: Customer-Liste-Leak + XFF-Bypass + Vollmacht-Validation duffyduck 2026-04-26 20:14:20 +02:00
  • 35745ce3bb Security-Hardening Runde 5: Hack-Das-Ding (DSGVO-GAU + Timing + XSS) duffyduck 2026-04-25 00:21:37 +02:00