Secure Software · Checklist
Secure Software Checklist for Web and Mobile Products
A practical review of the controls that should be addressed from threat modeling and authentication through testing, deployment and monitoring.
1 min read
Define the threat model and data boundaries
Document what data is processed, where it is stored, how it moves between services and who can access it. Treat internet-facing components, administration surfaces and third-party integrations as distinct attack surfaces.
Write abuse cases for sensitive workflows. Password reset, payments, file upload, invitations and privilege changes must be tested beyond the happy path.
Authentication and session security
Store passwords with a strong adaptive hash, support multi-factor authentication and protect account recovery as carefully as login. Keep session identifiers out of URLs and use Secure, HttpOnly cookies with an appropriate SameSite policy.
Enforce authorization on every server request, not only in the interface. Never process an object identifier supplied by the user without checking ownership and role.
Input, output and file handling
Validate input for its destination and use parameterized APIs for SQL, HTML, shell commands and file paths. Confirm output encoding for the exact rendering context.
For uploads, verify content type, size and storage location rather than trusting the extension. Separate user files from application code and executable directories.
Secrets, logging and errors
Do not place API keys or passwords in source code, images or client bundles. Use narrowly scoped credentials, centralized secret management and regular rotation.
Mask passwords, tokens and personal data in logs. Return safe user-facing errors while generating a correlation identifier for investigation.
Dependencies, testing and deployment
Lock dependencies, run automated security checks and assign ownership for critical updates. Add code review, static analysis, unit tests and authorization tests to CI.
Disable debug mode in production, apply security headers and test backup and rollback procedures. Security is not complete without monitoring, alerting and remediation verification after release.