Buy new:
-36% $48.27$48.27
Delivery Friday, October 11
Ships from: Amazon.com Sold by: Amazon.com
Save with Used - Good
$17.95$17.95
Delivery Monday, October 14
Ships from: Amazon Sold by: Corax Books
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Secure Programming Cookbook for C and C++: Recipes for Cryptography, Authentication, Input Validation & More 1st Edition
Purchase options and add-ons
Secure Programming Cookbook for C and C++ is an important new resource for developers serious about writing secure code. It contains a wealth of solutions to problems faced by those who care about the security of their applications. It covers a wide range of topics, including safe initialization, access control, input validation, symmetric and public key cryptography, cryptographic hashes and MACs, authentication and key exchange, PKI, random numbers, and anti-tampering. The rich set of code samples provided in the book's more than 200 recipes will help programmers secure the C and C++ programs they write for both Unix® (including Linux®) and Windows® environments. Readers will learn:
- How to avoid common programming errors, such as buffer overflows, race conditions, and format string problems
- How to properly SSL-enable applications
- How to create secure channels for client-server communication without SSL
- How to integrate Public Key Infrastructure (PKI) into applications
- Best practices for using cryptography properly
- Techniques and strategies for properly validating input to programs
- How to launch programs securely
- How to use file access mechanisms properly
- Techniques for protecting applications from reverse engineering
Secure Programming Cookbook for C and C++ is destined to become an essential part of any developer's library, a code companion developers will turn to again and again as they seek to protect their systems from attackers and reduce the risks they face in today's dangerous world.
- ISBN-100596003943
- ISBN-13978-0596003944
- Edition1st
- PublisherO'Reilly Media
- Publication dateAugust 19, 2003
- LanguageEnglish
- Dimensions7 x 1.51 x 9.19 inches
- Print length790 pages
Frequently bought together

Customers who bought this item also bought
Practical C Programming: Why Does 2+2 = 5986?Paperback$14.60 shippingGet it as soon as Tuesday, Oct 15Only 1 left in stock - order soon.
Standard C Library, ThePaperback$14.42 shippingGet it as soon as Monday, Oct 14Only 2 left in stock - order soon.
Secure Software Development: A Security Programmer's GuidePaperback$19.93 shippingGet it as soon as Thursday, Oct 3Only 3 left in stock - order soon.
Editorial Reviews
About the Author
Matt Messier, Director of Engineering at Secure Software, is a security authority who has been programming for nearly two decades. Besides coauthoring Network Security with OpenSSL, Matt coauthored the Safe C String Library, RATS, and EGADS, an Entropy Gathering and Distribution System used for securely seeding pseudo-random number generators. Prior to joining Secure Software, Matt worked for IBM and Lotus, on source and assembly level debugging techniques, and operating system concepts.
Product details
- Publisher : O'Reilly Media; 1st edition (August 19, 2003)
- Language : English
- Paperback : 790 pages
- ISBN-10 : 0596003943
- ISBN-13 : 978-0596003944
- Item Weight : 2.82 pounds
- Dimensions : 7 x 1.51 x 9.19 inches
- Best Sellers Rank: #1,309,305 in Books (See Top 100 in Books)
- #246 in C Programming Language
- #355 in C++ Programming Language
- #997 in Computer Network Security
- Customer Reviews:
About the author

John is Executive Vice President at SilverSky, the leader in cloud security solutions. John is the former editor-in-chief for IEEE Security and Privacy Magazine, and his technical work in cryptography has been standardized by NIST, the IEEE and IETF. Prior to SilverSky, John was CTO for Software-as-a-Service at McAfee.
John started out writing fiction in high school and college, but Randy Pausch (of Last Lecture Fame) convinced him to make a career in technology.
Related products with free delivery on eligible orders
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
algorithms, public keys, password selection, SSL, buffer overflow and
its prevention, and many vulnerabilities that I never knew existed.
One problem that I thought I understood was the complete removal
of a file from disk. I learned that there are many utilities and appli-
cations that make hidden and unrequested file copies which are beyond
the command line to detect or to eliminate.
If this describes your needs and you code in C or C++, then this book will be invaluable. Extensive code fragments that show how you can interface to existing crypto packages. Very detailed. You won't find theorems or any elegant maths here. No Chinese Remainder Theorem or Fermat's theorems. You have to already know or accept the theoretical underpinnings.
Given this, the book takes you into the nitty gritty of every major publicly available cryptosystem. With up to date assessments of their comparative strengths.
All of the above is aimed at application developers. The book also has sections for sysadmins of both unix and Microsoft operating systems, replete with suggestions on patching and good practice.
Don't be daunted by the book's heft. It is encyclopaedic in scope, and access is reasonably random access. The authors have striven to comprehensively span the field. You don't have to read from start to finish before you can commence using it.
But, when I got it and chuckled over the Acknowledgements section, I started to mindlessly flip through the book. Mindless page flipping soon turned to semi-conscious scanning. Semi-conscious scanning soon turned to serious reading. I find myself reading the book more and more, jumping back and forth between sections I find interesting and useful.
As a Windows C++ programmer for in-house tools, I do not dwell much on secure programming concepts. Yes, this is very, very bad way to program, so those of you reading this review should not try it at home. This book has shown the errors of my ways, revealed security issues that I have overlooked by accident or on purpose and gave concepts and examples that I can apply in my projects.
This book is one reference that I will be going back over and over again. The authors and editors have done a wonderful job to make the reading flow nice and easy. It is also very well laid out by stating the problem you may encounter, followed by a solution and then detailed discussion section with code samples.
For any C/C++ programmer making software to be used by more than one person, this reference book is a must.
You can still read the Acknowledgments and marvel at my name on there, of course.
The importance of understanding the security surrounding the development of software is finally being realized. This book provides a complete reference for the secure implementation of common operations that software developers often fail to do correctly.
One of the best things about this book is that it covers so many topics that are often left out of secure programming texts. It is in cookbook format which is really nice for quick reference as well as accommodating readers that have different levels of experience in this area. Both the problem and the solution are explained and real source code is provided leaving the reader with an understanding of the risks, and practical solutions that can be incorporated into their software projects.
The topics that impressed me most were: privilege separation, secure child process creation, executing external processes, safe file and string operations, random number generation, input validation, and the ways to safeguard against many types of attacks. There are also many good tips for safeguarding networked applications. For the more intensive apps, there is in-depth coverage of symmetric and public key crypto, key management, using OpenSSL, and dealing with X.509 certs (including validation techniques).
It's nice to see so much useful information related to secure software development packed into a single resource!
Top reviews from other countries
A good book for the advanced "C" programmer.
Si vous êtes curieux, ce livre est vraiment fait pour vous.




