Veteran web application developers know how hostile the Internet can be, and cookbooks like this one remind us that code vulnerabilities are as diverse as the applications they are unintentionally a part of. Authors Paco Hope and Ben Walther outfit readers with free software security tools and instruct how to use these plug-ins and utilities to build more tamper-resistent apps.
This twelve chapter book adopts the usual O'Reilly cookbook-formatted problem/solution/discussion approach to some of the most prevalent web app security issues facing developers today. The first four chapters supply the obligatory introduction, tool recommendations (all of which are freely available) and demonstrations, including one for the outstanding Firebug Firefox extension. Once outfitted with the necessary testing software and a basic understanding of web-friendly data encoding formats, the remainder of the book reviews input attacks via such vectors as URL tampering and file uploads carrying malicious payloads (Chapter 5), website scanning and retrieval using WebScarab, LWP and Nikto (Chapter 6). Chapter 7 and 8 are exclusively dedicated to learning and applying the cURL application and LibWWWPerl library in security testing scenarios. Chapter 9 is a potpourri of recipes including revealing examples of password recovery abuse, predicting credentials and finding and testing random numbers in web applications.
Given the breadth of known security vulnerabilities in AJAX, I was disappointed that the authors spent less than 20 pages covering the most obvious AJAX XML and JSON injection attacks. Given the considerable volume and rapid explosion of web apps and frameworks in the AJAX space these days, I would have preferred that the authors deliver an assessment of the security strength and known issues with more popular AJAX libraries like Dojo and Script.aculo.us. Alas, readers will have to look elsewhere for this type of information. Another curious omission from the book is any mention of the popular penetration testing framework Metasploit (www.metasploit.com). Perhaps this is due to Metasploit's swiss army knife approach to security vulnerability analysis beyond web applications.
Chapter 11 demonstrates session manipulation via cookies, header authorizations, session ID expirations and cross-site request forgeries. Finally, the book closes with a chapter supplying 17 different approaches that be used to do everything from modifying XSS to CLI, LDAP and SSI injection attacks. Given the step-by-step detail of these attacks, one can imagine cracker-wannabes lifting the tips from this book for their own nefarious reasons. For the white hat developers that Pac and Ben have written the book for, these descriptions easily show how delicate and effortless it can be to subvert poorly written applications that do not place as high a priority on security than they do on stability and performance.
In summary, web developer writing applications for public Internet consumption that are not already familiar with and practicing effective security design strategies should read this book. Obtain a quick education on what the world will do to security negligent apps once they're accessible on the wild, wild Internet. Developers not heeding this kind of advice are risking both their hard work and reputations as a consequence.
Authors: Paco Hope and Ben Walther
Publisher: O'Reilly Media
Price: $39.99 US