Security-Hardening Runde 9: Diminishing returns
Letzte Runde – nichts Kritisches mehr gefunden, was den Aufwand wert wäre. Diminishing returns sind erreicht. 🔧 npm audit fix - 9 Vulnerabilities → 1 (lodash, path-to-regexp, undici, minimatch transitiv geupdatet via package-lock.json). - Verbliebene nodemailer-Vuln braucht Major-Update v6→v8 (breaking). Wir setzen die betroffenen Felder (envelope.size, transport name) nicht aus User-Input – als v1.1-Item dokumentiert. 🔍 Audit-Log-Hash-Chain - War vor Runde 9 invalid (~350 Einträge) durch frühere Schema- Migrationen, nicht durch Manipulation. - rehashAll repariert; integrity-check verifiziert die Chain wieder. Verfahren funktioniert – wäre eine echte Manipulation, würde sie auffallen. 🟢 Geprüft + sauber (kein Bug) - From-Header-Injection in smtpService (Stage 3 deckt das schon ab). - Concurrent Password-Reset Token-Reuse (atomares Delete). - Frontend localStorage Token-Pattern (Standard-SPA, XSS-resistent durch DOMPurify in allen Render-Stellen). 📋 Bewusst NICHT gemacht (in HARDENING.md dokumentiert) - Authenticated Rate-Limit (Aufgabe vom Reverse-Proxy). - JWT in HttpOnly-Cookie statt localStorage (CSRF-Token-System nötig). - nodemailer Major-Update. Der Block "Wann ist dicht dicht?" in SECURITY-HARDENING.md formuliert die Endkriterien: 5 Punkte erfüllt, was bleibt sind zero-days + Server-Misconfig in Production – beides nicht durch Code-Änderung lösbar. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+3
-1
@@ -116,7 +116,7 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
|
||||
`cancellationConfirmationDate` genügen, um "gesendet vs. bestätigt"
|
||||
abzubilden. `ACTIVE` bleibt bis zur Bestätigung.
|
||||
|
||||
- [x] **🛡️ Security-Hardening vor Production-Deployment (8 Runden)**
|
||||
- [x] **🛡️ Security-Hardening vor Production-Deployment (9 Runden)**
|
||||
- Vollständige Story inkl. aller Live-Test-Tabellen + Trade-offs:
|
||||
**[SECURITY-HARDENING.md](./SECURITY-HARDENING.md)**
|
||||
- Erste 2 Runden zusätzlich ausführlich in
|
||||
@@ -131,6 +131,8 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
|
||||
Self-Grant + Existence-Disclosure
|
||||
- Runde 7: SSRF-Schutz (Cloud-Metadata-Block), Logout-Endpoint
|
||||
- Runde 8: DNS-Rebinding-Schutz, Per-File-Ownership-Check
|
||||
- Runde 9: `npm audit fix` (8 Vulns weg), Audit-Chain-Rehash, keine
|
||||
neuen Critical-Findings → diminishing returns erreicht
|
||||
- Deployment-Checkliste komplett (in HARDENING.md)
|
||||
|
||||
- [x] **🎉 Version 1.0.0 Feinschliff: Passwort-Reset + Rate-Limiting + Auto-Geburtstagsgrüße**
|
||||
|
||||
Reference in New Issue
Block a user