Fiecare client are propria bază de date.
GDPR by design, nu by policy.
Securitatea nu e un bullet point. E arhitectura. Iată exact ce facem și ce nu facem.
Database-per-tenant
Fiecare client are propria bază MySQL, nu o tabelă shared cu row-level filtering. Ștergerea definitivă la plecarea clientului e un DROP DATABASE — nu o interogare de ștergere pe milioane de rânduri care poate lăsa date orfane.
- Izolare fizică între clienți
- Backup-uri per-tenant, nu un blob global
- Custom DB credentials per tenant
- Ștergere garantată la cerere (GDPR Art. 17)
WebAuthn / passkeys
Autentificare cu Face ID, amprentă sau cheie hardware (YubiKey). Implementare cu lbuchs/webauthn, challenge-uri stocate în DB pentru rezistență la load balancing, counter validation pentru prevenirea cloning-ului.
- Face ID, amprentă, Windows Hello
- Multi-device per user
- Challenge-uri DB-backed (HA-safe)
- Counter validation vs. credential cloning
2FA cu TOTP + device trust
TOTP (Google Authenticator, Authy) pentru conturi care necesită 2FA. Device trust ca pickerii să nu fie întrebați de 2FA la fiecare shift — doar după 30 de zile sau dacă apar anomalii de login.
- TOTP standard compatibil cu toate authenticator apps
- Device trust 30 zile
- Backup codes one-time pentru recovery
- Enforcement per role
Audit log & impersonation
Fiecare create/update/delete e logat cu user_id, timestamp, IP, user agent, plus vechea și noua valoare. Operatorii de support pot impersona un user tenant pentru debugging — acțiunea e logată explicit și vizibilă tenantului.
- Log complet pe toate operațiunile CRUD
- Vechea valoare + noua valoare per acțiune
- IP + user agent per operațiune
- Impersonation cu audit separat, vizibil tenantului
Storage & transport
Fișierele (etichete, facturi, foto-uri incidente, imagini produse) sunt pe DigitalOcean Spaces în regiunea EU (lon1), S3-compatible, accesate doar prin signed URLs cu expirare. TLS 1.2+ pentru transport.
- DO Spaces EU (lon1, UK)
- Signed URLs cu expirare configurabilă
- TLS 1.2+ în tranzit
- Backup cross-region
Sesiuni & remember-me
Sesiunile trăiesc într-o conexiune DB dedicată, cu SameSite=lax. Remember-me folosește selector:validator rotating tokens (nu JWT-uri) — la orice login sau abuz, invalidăm cu rotație automată.
- Selector:validator pattern (nu JWT)
- Rotație la fiecare login
- 30 de zile expiry, revocabil
- DB-backed sessions pe conexiune separată
Infrastructură
Două servere aplicație în spatele unui load balancer, cu sesiuni într-un DB dedicat pentru persistență. MySQL 8.4, Redis pentru queue și cache. Fișiere pe DO Spaces EU.
Conformitate
GDPR
Sub-procesorii documentați pe /gdpr. Data deletion la cerere. DPO disponibil. SCC-uri pentru orice transfer de date (nu transferăm în afara SEE).
ANAF & e-Factura
Conform cu legislația fiscală românească. Retenție 10 ani pentru facturi. Emitere e-Factura prin Oblio sau SmartBill, direct în SPV.
SOC2 / ISO 27001
Pe roadmap pentru 2026. Procesele interne sunt deja aliniate cu controalele SOC2 Type II.
Mai multe întrebări despre securitate?
Răspundem personal pe email sau într-un call cu echipa ta de IT/Security.