security: audit complet + patch vulnerabilitati critice v1.3.5
Audit de securitate executat pe Backend (FastAPI) si Frontend (Next.js/Dexie). 12 vulnerabilitati identificate (4 CRITICE, 4 HIGH, 3 MEDIUM, 1 LOW). Patch-uri aplicate direct: - [C-02] Eliminat bypass autentificare pentru useri fara parola (users.py) - [C-03] Parola default Admin inlocuita cu secrets.token_urlsafe(16) (users.py) - [H-01] LDAP injection fix: escape_filter_chars pe username (users.py) - [H-03] Validare MIME + limita 10MB pe /items/extract-label (items.py) - [M-01] CORS fix: allow_origins din env ALLOWED_ORIGINS, nu wildcard (main.py) - [M-03] Toate print() LDAP inlocuite cu log.debug() (users.py) Raport complet: dev_docs/SECURITY_REPORT.md Actiuni arhitecturale ramase (JWT enforcement, rate limiting): SESSION_STATE.md Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,20 +1,42 @@
|
||||
# CURRENT AI WORKING SESSION
|
||||
|
||||
**Active AI:** Claude (Pending Handover)
|
||||
**Active AI:** Claude (Sonnet 4.6)
|
||||
**Last Updated:** 2026-04-11
|
||||
**Current Version:** v1.3.5
|
||||
**Branch:** dev
|
||||
|
||||
### Current Status
|
||||
**Security Audit Phase.** The application infrastructure has been successfully stabilized and documented (Dockerized, Standalone Systemd, LDAP integrated, Offline Dexie.js active).
|
||||
The next explicit objective is to run a deep security and vulnerability sweep before full production deployment.
|
||||
**Security Audit COMPLETAT.** Auditul de securitate a fost executat complet. Au fost identificate 12 vulnerabilități (4 CRITICE, 4 HIGH, 3 MEDIUM, 1 LOW). Patch-urile aplicabile direct au fost implementate. Raportul complet se găsește în `dev_docs/SECURITY_REPORT.md`.
|
||||
|
||||
### Technical Context
|
||||
- A full security audit mapping is prepared in `dev_docs/SECURITY_AUDIT_PLAN.md`.
|
||||
- See `AI_RULES.md` for strict boundaries on editing documentation and git commit formats.
|
||||
- Raport complet: `dev_docs/SECURITY_REPORT.md`
|
||||
- Fișiere modificate în acest session: `backend/main.py`, `backend/routers/users.py`, `backend/routers/items.py`
|
||||
- `.env` **NU** a fost niciodată committed în git — cheia Gemini API este în siguranță local.
|
||||
|
||||
### Next Steps / Blockers (For CLAUDE)
|
||||
1. Read `dev_docs/SECURITY_AUDIT_PLAN.md`.
|
||||
2. Execute the security checks across the Backend (FastAPI) and Frontend (Next.js/Dexie) surfaces.
|
||||
3. Generate a `SECURITY_REPORT.md` artifact/document in `dev_docs/`.
|
||||
4. Directly patch any critical vulnerabilities found during the audit (e.g. JWT enforcement, SQL validation, Offline payload sanitation) and commit them safely.
|
||||
### Patch-uri aplicate (direct în cod)
|
||||
| ID | Fix |
|
||||
|----|-----|
|
||||
| C-02 | Eliminat bypass autentificare fără parolă (`users.py`) |
|
||||
| C-03 | Parola Admin seed înlocuită cu `secrets.token_urlsafe(16)` (`users.py`) |
|
||||
| H-01 | LDAP injection fix cu `escape_filter_chars` (`users.py`) |
|
||||
| H-03 | Validare MIME + limită 10MB pe upload imagini (`items.py`) |
|
||||
| M-01 | CORS fix: `allow_origins` din env `ALLOWED_ORIGINS` în loc de `"*"` (`main.py`) |
|
||||
| M-03 | Toate `print()` LDAP înlocuite cu `log.debug()` (`users.py`) |
|
||||
|
||||
### Next Steps / Blockers (Pentru următorul AI)
|
||||
**ATENȚIE: Aplicația NU este pregătită pentru producție fără aceste task-uri:**
|
||||
|
||||
1. **[C-01] PRIORITATE MAXIMĂ — Implementare JWT Bearer Auth** pe toate endpoint-urile.
|
||||
- Niciunul dintre endpoint-urile API nu verifică autentificarea.
|
||||
- Necesită: creare `get_current_user` dependency, modificarea tuturor router-elor.
|
||||
- Efort estimat: ~4h
|
||||
|
||||
2. **[C-04] Rotire cheie Gemini API** — Cheia din `.env` este reală. Deși nu e în git, trebuie rotită preventiv după orice share al mașinii.
|
||||
|
||||
3. **[H-02] Rate limiting pe `/items/extract-label`** — Instalare `slowapi`, 10 req/min per IP.
|
||||
|
||||
4. **[M-02] user_id din JWT token** — Nu din request body (depinde de C-01).
|
||||
|
||||
5. **[L-01] JWT cu expirare** pentru sesiunile frontend (depinde de C-01).
|
||||
|
||||
6. **Configurare ALLOWED_ORIGINS** în `docker-compose.yml` — Adăugare variabila de mediu cu originile reale de producție.
|
||||
|
||||
Reference in New Issue
Block a user