Rental applications contain some of the most sensitive personal and financial information people share. Here is exactly how Approvee protects it.
Security is built into the platform's architecture, not added on top of it.
For IT reviewers and security-conscious evaluators.
| Control | Detail | Status |
|---|---|---|
| Encryption algorithm | AES-256 via Fernet (symmetric authenticated encryption with HMAC-SHA256) | Enabled |
| Document storage | Cloudflare R2 (S3-compatible, geo-redundant object storage); documents encrypted before upload | Enabled |
| Data in transit | TLS 1.2+ enforced; HTTPS Strict Transport Security (max-age 63,072,000 s, includeSubDomains) | Enabled |
| Session security | HttpOnly · Secure · SameSite=Lax; configurable max-age; invalidated on logout | Enabled |
| Multi-factor authentication | TOTP (time-based one-time password); QR code enrollment via authenticator app | Available |
| Content Security Policy | default-src 'self'; restricts scripts, styles, connections, and frame-ancestors | Enabled |
| Cross-origin protection | CORS restricted to approvee.org; X-Frame-Options: DENY | Enabled |
| Rate limiting | Per-IP, DB-backed; applied to auth, upload (30/hr), and AI analysis (10/hr) endpoints | Enabled |
| File validation | Magic byte inspection on upload; PDF, JPG, PNG only; 20 MB limit per file | Enabled |
| Audit logging | Immutable log of all actions: user ID, org, action type, resource, IP, timestamp | Enabled |
| Data retention | Documents auto-deleted after 3 years; audit logs retained 7 years | Automated |
| Tenant isolation | org_id enforced on every query; no cross-org data access possible at the application layer | Enforced |
| Dependency scanning | pip-audit run against all dependencies; no known CVEs as of September 2026 | Clean |
| Breach notification | NY SHIELD Act (N.Y. Gen. Bus. Law § 899-bb) response procedures documented and in place | In place |
We're happy to answer detailed questions from IT teams and compliance reviewers.