21.03.2013 Views

Problem - Kevin Tafuro

Problem - Kevin Tafuro

Problem - Kevin Tafuro

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

the C programming language, with some quick forays into C++ when important,<br />

and a bit of assembly when there’s no other way.<br />

We hope this book will do well enough that we’ll be able to produce versions for<br />

other programming languages. Until then, we are going to solve both of the aforementioned<br />

problems at once with our web site, http://www.secureprogramming.com,<br />

which you can also get to from the book’s web page on the O’Reilly site (http://<br />

oreilly.com/catalog/secureprogramming/). Not only can you find errata there, but you<br />

can also find and submit secure programming recipes that are not in the book. We<br />

will put on the site recipes that we validate to be good. The goal of the site is to be a<br />

living, breathing resource that can evolve as time progresses.<br />

We Can’t Do It All<br />

There are plenty of things that people may find to criticize about this book. It’s too<br />

broad a topic to make a perfect book (that’s the motivation for the web site, actually).<br />

Although we believe that this book is likely to help you a great deal, we do<br />

want to address some specific issues so at least you’ll know what you’re getting if<br />

you buy this book:<br />

This book is implementation-focused.<br />

You’re not likely to build secure software if you don’t know how to design software<br />

to be secure from the get-go. We know that well, and we discuss it at great<br />

length in the book Building Secure Software. On the other hand, it’s at least as<br />

easy to have a good design that results in an insecure implementation, particularly<br />

when C is the programming language you’re using. Not only do our implementation-level<br />

solutions incorporate good design principles, but we also discuss<br />

plenty of issues that will affect your designs as well as your implementations.<br />

The world needs to know both how to design and how to implement with security<br />

in mind. We focus on the implementation so that you’ll do a better job of it.<br />

Nonetheless, we certainly recommend that you read a book that thoroughly covers<br />

design before you read this book.<br />

This book doesn’t cover C++ well enough.<br />

C++ programmers may grumble that we don’t use any C++ specific idioms. For<br />

the most part, the advice we give applies to both languages, but giving all the<br />

examples in C makes them more applicable, because practitioners in both languages<br />

can still use them. On the rare occasion that there are things to note that<br />

are specific to C++, we certainly try to do so; examples include our discussions<br />

of buffer overflows and the use of exception handling to prevent leaving programs<br />

in an insecure state. Over time, our coverage of C++ will improve on the<br />

book’s web site, but, until then, C++ programmers should still find this book<br />

relevant.<br />

xviii | Preface<br />

This is the Title of the Book, eMatter Edition<br />

Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!