Skip to content

Security checklist

Support security sign-off by mapping controls to implementation notes.

ItemStatus guidanceOwner
SQL injectionPrefer frappe.db.sql with bindings; review any f-string SQL (e.g. legacy helpers in api/user.py helpers)Dev
XSSxss_safe flags on whitelisted methods where set; review Guest APIs returning HTMLDev
CSRFFollow Frappe version CSRF rules for /apiFramework + Dev
HTTPSTerminate TLS at reverse proxy / CloudflareOps
Password hashingFrappe User password storageFramework
Rate limitingReverse proxy / Frappe limitsOps
Secrets in envSite config, not gitOps
Audit trailDoc revision log, optional custom audit DocTypesDev
Guest endpointsMany allow_guest=True APIs — inventory and harden (API inventory)Dev
Secrets in sourceAudit the codebase for hardcoded API keys / OAuth client secrets (e.g. integration helpers in large DocType controllers); rotate leaked keys and move to site config or secrets — never commit new credentialsDev + Ops
  • Rotate integration keys on a schedule; document in client IT runbook.