Innocent Code: A Security Wake-Up Call for Web Programmers (英語) ペーパーバック – 2004/1/30
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
- This concise and practical book shows where code vulnerabilities lie-without delving into the specifics of each system architecture, programming or scripting language, or application-and how best to fix them
- Based on real-world situations taken from the author's experiences of tracking coding mistakes at major financial institutions
- Covers SQL injection attacks, cross-site scripting, data manipulation in order to bypass authorization, and other attacks that work because of missing pieces of code
- Shows developers how to change their mindset from Web site construction to Web site destruction in order to find dangerous code
??the security book that all web developers need to read?sound advice?ignore at peril?? (Tech Book Report, January 2004)
"?achieves its aims admirably?" (PC Utilities, April 2004)
??should be required reading for web developers?? (about.com, March 2004)
??if you are a web techie you will love this book, I did?? (Infosecurity Today, July 04)商品の説明をすべて表示する
Amazon.com で最も参考になったカスタマーレビュー (beta) （「Early Reviewer Program」のレビューが含まれている場合があります）
Like for former book, this one systematically covers exposures and vulnerabilities, and provides remedies at the code level. What sets this book apart is every component of a modern web site, from web server to backend database is covered, problem areas from a developer's perspective are highlighted, and solutions for resolving the problem areas given. I like this book because developers, from casual hobbyists to professionals, will easily grasp the information. More importantly, the material is not insultingly simple to experienced developers, nor is it over the head of less experienced ones.
Another reason I like this book is in systematically uncovering exposures the QA team can also use this book as a sourcebook for developing a baseline set of test cases that will catch security-related problems during acceptance, functional qualification, or regression test cycles.
In my opinion not only should web developers (including DBAs) and QA professionals read this book, but it should also be adopted by development organizations and projects as a part of coding standards.
Take SQL injection. If you do not have your web server filter the user's input in a web page submitted by her browser, and you blithely pass her string to your SQL engine, you are asking for grief. You're begging for a cracker to stuff a SQL command script to sabotage or exacavate your database. Thus too for shell command injection, where your server might inadvertantly execute that as a shell command. Remember to filter user input!
Cross site scripting and Trojans are also explained. Unfortunately, while the Trojan discussion is understandable, it is far too short.
There is no discussion of antiphishing methods. Though in the Trojan chapter, an example fake email would qualify as phishing. Perhaps the author saw no technical solution for phishing. And this book is about technical solutions.
The author manages a tight and very readable book that is addressed at the software developer. It can be read in about a day or afternoon (if you happen to be stranded at an airport lounge). I will be suggesting it to be one of our standard literature titles on the development floor.