1. Transport security
- HTTPS enforced on every URL (no http:// fallback)
- Valid certificate, automated renewal via ACME
- HSTS header with `max-age=31536000; includeSubDomains; preload`
- TLS 1.2 minimum; ideally TLS 1.3 only
- Modern cipher suites; weak ciphers (RC4, 3DES) disabled
2. DNS hardening
- DNSSEC enabled at registrar and nameservers
- CAA record specifying which CAs may issue certificates for your domain
- Domain registrar lock enabled (prevents unauthorized transfers)
- Two-factor auth on the registrar account
- Monitoring for unexpected DNS record changes
3. Application security
- Content-Security-Policy header blocking inline scripts where possible
- X-Content-Type-Options: nosniff
- Referrer-Policy: strict-origin-when-cross-origin
- Cookies marked Secure, HttpOnly, SameSite=Lax (or Strict)
- Dependencies kept current; weekly vulnerability scan
- Secrets in environment variables, never in source control
4. Access and authentication
- 2FA mandatory on all admin and CMS accounts
- Unique passwords (use a password manager)
- SSH key-only access for servers; password auth disabled
- Principle of least privilege — admins are admins, not everyone
- Audit log of admin actions retained for at least 90 days
5. Monitoring and incident response
- Uptime monitoring with alerts under 1 minute
- SSL expiry monitoring at 30/14/7/2 days
- DNS change alerts
- Documented playbook for the top 3 incident types
- Off-site, tested backups (untested backup = no backup)