Security for Developers
Defensive practices for everyday development: authentication, authorization, safe data handling, secrets and dependency risk.
Prerequisites
- Web development basics
- Some ASP.NET Core or comparable framework experience
Technologies
About this course
Most security incidents in business applications trace back to ordinary development decisions rather than sophisticated attacks. That makes security a coding concern, which is how this course treats it.
Everything here is defensive and framed around building safely. We explain what a category of vulnerability is and how to make it impossible in your code, without providing instructions for attacking systems.
Topics include authentication and authorization done properly, password storage, parameterised data access, output encoding, secret management, transport security, and keeping dependencies patched.
Course roadmap
All 14 lessons are written and available.
Module 01
Identity and Access
Prove who someone is, then decide what they can do — and keep those separate.
- 01Authentication vs AuthorizationSeparate proving identity from granting permission.16 min
- 02Password SecurityStore credentials with a suitable password hashing function.18 min
- 03Tokens and JWTIssue and validate tokens correctly, including signature and expiry checks.18 min
- 04OAuth and OpenID ConnectExplain the flows and delegate authentication safely.20 min
Module 02
Handling Data Safely
Input you did not write is untrusted, and output needs encoding for where it lands.
- 01Input ValidationValidate at trust boundaries and never rely on the client.16 min
- 02Preventing SQL InjectionUse parameterised queries to remove the risk structurally.16 min
- 03Preventing Cross-Site ScriptingEncode output for its destination context.18 min
- 04Cross-Site Request ForgeryProtect state-changing requests from being triggered elsewhere.16 min
Module 03
Secrets and Transport
Keep credentials out of your repository and traffic protected in transit.
Module 04
Dependencies and Operations
The weaknesses that arrive through your supply chain and your deployment.
On completion
What you should take away
- Authentication proves who someone is; authorization decides what they may do
- Parameterised queries remove injection risk structurally, not by filtering
- Secrets belong in a secret store, never in source control
- Out-of-date dependencies are one of the most common real-world weaknesses
Have a project worth talking through?
Tell us what you're building or what's slowing your current system down. We'll give you a direct read on scope and approach.