Foundations of Security: What Every Programmer Needs to Know

Front Cover
Apress, May 11, 2007 - Computers - 292 pages

Foundations of Security: What Every Programmer Needs to Know teaches new and current software professionals state-of-the-art software security design principles, methodology, and concrete programming techniques they need to build secure software systems. Once you're enabled with the techniques covered in this book, you can start to alleviate some of the inherent vulnerabilities that make today's software so susceptible to attack. The book uses web servers and web applications as running examples throughout the book.

For the past few years, the Internet has had a "wild, wild west" flavor to it. Credit card numbers are stolen in massive numbers. Commercial web sites have been shut down by Internet worms. Poor privacy practices come to light and cause great embarrassment to the corporations behind them. All these security-related issues contribute at least to a lack of trust and loss of goodwill. Often there is a monetary cost as well, as companies scramble to clean up the mess when they get spotlighted by poor security practices.

It takes time to build trust with users, and trust is hard to win back. Security vulnerabilities get in the way of that trust. Foundations of Security: What Every Programmer Needs To Know helps you manage risk due to insecure code and build trust with users by showing how to write code to prevent, detect, and contain attacks.

  • The lead author co-founded the Stanford Center for Professional Development Computer Security Certification.
  • This book teaches you how to be more vigilant and develop a sixth sense for identifying and eliminating potential security vulnerabilities.
  • You'll receive hands-on code examples for a deep and practical understanding of security.
  • You'll learn enough about security to get the job done.
 

Contents

Secure Systems Design
25
Secure Design Principles
61
Exercises for Part 1
77
PART 2 Secure Programming Techniques
80
Buffer Overflows
93
ClientState Manipulation
107
SQL Injection
123
Password Security
139
Introduction to Cryptography
202
Asymmetric Key Cryptography
221
Key Management and Exchange
227
MACS and Signatures
239
Exercises for Part 3
251
The FLI Model
255
APPENDIX B Source Code Listings
261
REFERENCES
267

CrossDomain Security in Web Applications
155
Exercises for Part 2
197

Other editions - View all

Common terms and phrases

Popular passages

Page 284 - Internet X.509 public key infrastructure certificate and certificate revocation list (CRL) profile,
Page 281 - May 1997 (http:// www. cdt. org/crypto/risks98f) . harder because more systems would need to be secured to provide the same level of security. Scaling might prevent the system from working at all The envisioned key recovery system would have to work with thousands of products from hundreds of vendors...

About the author (2007)

Christoph Kern is an information security engineer at Google and was previously a senior security architect at Yodlee, a provider of technology solutions to the financial services industry. He has extensive experience in performing security design reviews and code audits, designing and developing secure applications, and helping product managers and software engineers effectively mitigate security risks in their software products.

Bibliographic information