Security
How we protect reporters, reports and evidence. No system is perfectly secure, so we design for defence in depth and tell you plainly what we do.
Protecting reporters
- No IP address, device or browser information is stored with reports.
- Report contents and evidence are encrypted at rest (AES-256-GCM), with keys kept outside the database.
- Tracking codes are stored only as Argon2id hashes. References are random, not sequential.
- Anonymous reporting needs no account or contact details.
Protecting the platform
- Edge protection against denial-of-service attacks, a web application firewall, and bot management.
- Rate limits, submission cooldowns, duplicate detection, honeypot fields and a human-verification check shown only when activity looks automated.
- Strict Content Security Policy, HTTPS everywhere with HSTS, and modern security headers.
- Parameterised database queries, strict input validation and a least-privilege database account that cannot alter the schema.
- File-type verification, malware scanning, metadata stripping and private encrypted storage for uploads.
Protecting access
- Administrator accounts require strong passwords (Argon2id) and two-factor authentication.
- Role-based permissions on the principle of least privilege; security staff can't read reports without a separate grant.
- Short sessions, rotation on sign-in, lockout after repeated failures and alerts on unusual sign-in activity.
- A hash-chained, append-only audit log of every administrative action.
Found a vulnerability?
Please tell us privately. See our responsible disclosure policy.