-
Notifications
You must be signed in to change notification settings - Fork 56
Security
mrofisr edited this page Jul 17, 2026
·
1 revision
Sakeenah implements multiple security layers to protect guest privacy and prevent abuse.
Database-level separation ensures wedding data never crosses boundaries. Each wedding's wishes and analytics are completely isolated.
All API inputs are validated with Zod schemas, preventing:
- SQL injection attacks
- XSS (Cross-Site Scripting)
- Invalid data types
- HTTPS enforced for all production deployments
- TLS encryption for data in transit
- CORS protection restricts API access to approved domains
Sensitive parameters are removed from the URL after extraction:
- Guest opens:
https://domain.com/wedding-2025?guest=encoded-name - System stores data in localStorage
- URL changes to:
https://domain.com - Browser history shows only the clean URL
- Client-side data expires after 30 days automatically
- No server-side session management required
- Each browser/device maintains separate invitation data
- Meta tags prevent Wayback Machine archiving
- Robots.txt blocks web crawlers
- No sensitive data in URL history or bookmarks
| Aspect | Implementation |
|---|---|
| Minimal Data | Only wedding UID and guest name stored client-side |
| No Tracking | Zero third-party analytics by default |
| Public Wishes | Guest messages intentionally public for celebration |
| Data Retention | localStorage cleared after 30 days |
| No URL History | Sensitive data not persisted in browser history |
Sakeenah uses a passwordless approach for guest experience:
- No login required for guests
- Seamless experience via localStorage persistence
- URL-based identification with automatic cleanup
For production deployments, consider adding:
- Rate Limiting: Prevent API abuse (recommended)
- WAF Rules: Block malicious traffic patterns
- Database Encryption: Encrypt sensitive fields at rest
- Audit Logging: Track administrative actions