What Every Programmer Should Know About Security
There’s an excellent thread going on over at stackoverflow.com about suggestions for what every programmer should know about security.
Some of the more interesting highlights:
There are some excellent books and articles online about making your applications secure:
- Never trust user input!
- Validate input from all untrusted sources - use whitelists not blacklists
- Plan for security from the start - it's not something you can bolt on at the end
- Keep it simple - complexity increases the likelihood of security holes
- Keep your attack surface to a minimum
- Make sure you fail securely
- Use defence in depth
- Adhere to the principle of least privilege
- Use threat modelling
- Compartmentalize - so your system is not all or nothing
- Hiding secrets is hard - and secrets hidden in code won't stay secret for long
- Don't write your own crypto
- Using crypto doesn't mean you're secure (attackers will look for a weaker link)
- Be aware of buffer overflows and how to protect against them
- Writing Secure Code 2nd Edition - I think every programmer should read this
- Building Secure Software: How to Avoid Security Problems the Right Way
- Secure Programming Cookbook
- Exploiting Software
- Security Engineering - an excellent read
- Secure Programming for Linux and Unix HOWTO
Check out the full discussion here: What should every programmer know about security? (via stackoverflow.com)
Written on May 7, 2012