Secure by Design for Developers
Purpose
Secure by design means engineers build security into the design, code, tests and deployment evidence from the start.
Developer Responsibilities
Developers are responsible for:
understanding security requirements
protecting secrets
validating input
enforcing authorization
avoiding insecure APIs
writing security-relevant tests
logging safely
reviewing dependencies
responding to vulnerability findings
recording security exceptions
Secure Coding Principles
Deny by default.
Least privilege.
Validate at boundaries.
Authorize every sensitive action.
Keep secrets out of code.
Use platform cryptography.
Log events, not secrets.
Fail safely.
Keep dependencies current.
Prefer supported frameworks over custom security code.
Security Requirements in User Stories
Security acceptance criteria should be included in work items.
Example:
Secure Code Review Questions
Is authorization enforced server-side?
Are object-level permissions checked?
Is input validated?
Are secrets externalised?
Are logs safe?
Are errors safe for clients?
Are dependencies approved?
Are cryptographic operations platform-standard?
Are security tests included?
Required Evidence
threat model or risk notes for sensitive features
security acceptance criteria
authorization tests
dependency scan results
code review record
exception records if needed
Was this helpful?

