Email dan DNS for Django

medium6 checks

Email authentication protects the brand, not the website. SPF, DMARC, DKIM, DNSSEC and CAA are cheap controls that stop spoofing and rogue certificates.

What Django must have

  • SPF record ending in -all with every legitimate sender listed
  • DMARC published, moving from p=none to quarantine then reject
  • DKIM signing enabled on the mail provider
  • DNSSEC signed at the registrar
  • CAA record restricting which CAs may issue certificates
  • MTA-STS and TLS-RPT for inbound mail

How to fix it

  1. 1Publish DMARC in monitoring mode first, then tighten after reviewing reports
  2. 2Add CAA for the CA you actually use, usually letsencrypt.org

Django context

Python web framework with an ORM and admin interface.

DEBUG=True leaks stack traces and settings. Restrict /admin and rotate SECRET_KEY if it ever leaked.