Authentication & Authorization
□ Are all endpoints authenticated?
□ Is authorization checked (not just auth)?
□ Are role checks on the server, not client?
□ Can users access others’ data? (IDOR)
□ Are tokens validated on every request?
Input & Output
□ Is user input validated and sanitized?
□ Are SQL queries parameterized?
□ Is output HTML-escaped? (XSS)
□ Are file uploads restricted by type/size?
□ Are redirects validated against allowlist?
Secrets & Configuration
□ No hardcoded secrets or API keys?
□ .env files in .gitignore?
□ HTTPS enforced?
□ CORS configured restrictively?
□ Error messages don’t leak internals?
Dependencies
□ All packages verified to exist?
□ No known CVEs? (npm audit)
□ Versions pinned, not floating?
□ License compatible with your project?
Automate what you can: Pre-commit hooks for secrets, CI for dependency audits, linting for security patterns. Manual review for auth logic, business rules, and architectural decisions. The checklist ensures nothing is forgotten.