© 2007

Foundations of Security

What Every Programmer Needs to Know

  • Authors

Table of contents

  1. Front Matter
    Pages i-xxvii
  2. Security Design Principles

    1. Front Matter
      Pages 1-1
    2. Pages 3-24
    3. Pages 25-60
    4. Pages 77-79
  3. Secure Programming Techniques

    1. Front Matter
      Pages 81-81
    2. Pages 93-105
    3. Pages 123-138
    4. Pages 139-154
    5. Pages 197-200
  4. Introduction to Cryptography

    1. Front Matter
      Pages 201-201
    2. Pages 239-250
    3. Pages 251-252

About this book


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.


SQL computer security cryptography design development privacy programming software web applications

About the authors

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

Industry Sectors
IT & Software
Finance, Business & Banking


From the reviews:

"It is written based on a course for beginning programmers. … The book has three main parts: security design principles, secure programming techniques, and an introduction to cryptography. … Exercises are included at the end of each part in order to provide suggestions for getting hands-on experience." (A. Mariën, ACM Computing Reviews, Vol. 49 (5), May, 2008)