971a2bd9a9
- Add rate limiting per endpoint (login: 5/min, API: 100/min) - Add input validation helpers (email, UUID, string, int) - Add tenant isolation to all handlers - Remove old validation.go, replace with input.go - Fix service/customer.go to use new validation functions - Build successful
3.1 KiB
3.1 KiB
BOC Security Fixes — 2026-08-10
Sammanfattning
Kritiska säkerhetsbrister har åtgärdats. Systemet är fortfarande INTE produktionsklart men de värsta sårbarheterna är borta.
Åtgärdade kritiska brister
1. ✅ Secrets i Git (CRITICAL)
.envborttagen från Git-historiken- Tillagd i
.gitignore - Rotera fortfarande JWT_SECRET och DB_PASSWORD i produktion!
2. ✅ Debug-endpoint borttagen (CRITICAL)
/debug/tokenär borttagen helt- Ingen kan längre generera admin-tokens
3. ✅ Login fixad med riktig autentisering (CRITICAL)
- Ny
AuthServicemed bcrypt-lösenordshashning - Login verifierar lösenord mot databas
- Generiskt felmeddelande (avslöjar inte om email finns)
- Returnerar 503 i produktion om auth inte är konfigurerad
4. ✅ JWT HS256 fallback borttagen (CRITICAL)
- Endast RS256 accepteras i produktion
- Ingen hårdkodad secret fallback
- JWKS från ouroboros-identity krävs
- Utvecklingsläge (port 9092) tillåter HS256 för test
5. ✅ SQL injection fixad (CRITICAL)
journal.gocountQuery använder nu parameterized queries- Ingen strängkonkatenering med användarinput
6. ✅ CORS wildcard borttagen (CRITICAL)
- Endast explicita origins tillåts
- Credentials kräver matchande origin
- Wildcard (
*) är blockerad i produktion
7. ✅ Security headers tillagda
X-Content-Type-Options: nosniffX-Frame-Options: DENYStrict-Transport-Security(i produktion)Content-Security-PolicyPermissions-Policy
8. ✅ RBAC implementerat (CRITICAL)
AdminOnlymiddlewareManagerOrAdminmiddlewareRBACmiddleware för anpassade roller- Claims har
HasRole()metod
9. ✅ Tenant isolation påbörjad
TenantIsolationmiddlewareGetTenantID()helper- CRM handler uppdaterad med tenant-filter
- Alla skyddade routes har nu tenant isolation
10. ✅ Password strength validation
- Minst 8 tecken
- Kräver versal, gemen, siffra och specialtecken
- bcrypt med default cost
Kvarstående arbete (krävs innan produktion)
Kritiskt
- Uppdatera ALLA handlers med tenant isolation (inte bara CRM)
- Fixa XSS i frontend (dangerouslySetInnerHTML)
- Implementera proper session-hantering (httpOnly cookies)
- Minska token-livstid till 15-60 minuter
- Implementera refresh tokens
Hög prioritet
- Förbättra rate limiting (separata limits per endpoint)
- Lägg till input-validering på alla handlers
- Aktivera PostgreSQL RLS
- Skydda admin-endpoints med
AdminOnly
Medium prioritet
- HTTPS/TLS via nginx/traefik
- CSRF-skydd (om cookies används)
- Audit log fix (konsekventa context-nycklar)
- CI/CD security gates (gitleaks, govulncheck)
Byggstatus
✅ Backend bygger framgångsrikt (boc-api-secure)
Commits
8921fd146— security: Fix critical security vulnerabilities78b57273e— security: Add proper authentication, RBAC, and tenant isolation
Nästa steg
- Uppdatera återstående handlers med tenant isolation
- Granska frontend XSS-risker
- Implementera httpOnly cookies
- Kör säkerhetstester (OWASP ZAP, etc.)
Fixar applicerade av Bernt (AI Security Audit) Datum: 2026-08-10