Security guidelines, authentication patterns, and threat model.
- Defense in depth — Multiple layers of security controls.
- Least privilege — Grant minimum permissions required.
- Validate all input — Parse and validate at every boundary.
- Encrypt in transit and at rest — TLS for transport, encryption for storage.
- Fail secure — Default to deny on errors.
- Injection: Use parameterized queries, never interpolate user input.
- XSS: Sanitize output, use Content Security Policy.
- CSRF: Use anti-CSRF tokens for state-changing operations.
- Broken Auth: Rate-limit login, enforce strong passwords, use MFA.
- Secrets in Code: Never commit secrets. Use environment variables or vault.
- No secrets in source code or configuration files.
- Use environment variables or a secrets manager (e.g., Vault, AWS Secrets Manager).
- Rotate secrets regularly.
.envand.env.localare in.gitignore.
- Keep dependencies updated.
- Run security audits regularly (
npm audit,pip audit, etc.). - Pin dependency versions for reproducible builds.
- Review new dependencies before adding.