The Tangled Web: A Guide to Securing Modern Web Applications

The Tangled Web is my second book, a lovingly crafted guide to the world of browser security. It enters an overcrowded market, but there are two reasons why you may want to care.

First of all, where other books simply dispense old and tired advice on remediating common vulnerabilities, The Tangled Web offers a detailed and thoroughly enjoyable account of both the "how" and the "why" of the modern web. In doing so, it enables you to deal with the seedy underbelly of contemporary, incredibly complex web apps.

The other reason is that it is based on years of original research - including, of course, my Browser Security Handbook (2008). I think it is simply unmatched when it comes to the breadth and the quality of the material presented. It outlines dozens of obscure but remarkably important security policies, governing everything from content rendering to frame navigation - and affecting your applications in more ways than you may expect.

Where to buy
The book was published by No Starch Press (ISBN 9781593273880), and is available for around $30 from all the usual retailers, including Amazon and Barnes & Noble; Safari subscribers can also get it here.

Alternatively, you can buy directly from the publisher - use coupon code COREDUMP.CX to get 30% off. If you buy from No Starch, you get complimentary, DRM-free PDF, Mobi, and ePub versions with each paper copy; they also sell e-books separately.

Translations: Italian (Apogeo), Chinese (China Machine Press), German (dpunkt), Polish (Helion), Korean (SciTech Media), Japanese (Shoeisha), Spanish (Anaya).

Endorsements from several prominent experts in the security community: Notable detailed reviews: Miscellanous Twitter mentions: More to come...
Sample chapter
Chapter 3 is available for download here. In addition, an excerpt from the introduction to the Kindle version can be read on Amazon (click the cover if it doesn't load automatically).
Table of Contents
The following is a rough, top-level table of contents for the book; you can download a more detailed but non-annotated version here.

Introduction and Acknowledgments

1. Security in the World of Web Applications (Kindle excerpt)
The goals of security engineering in the age of web apps. The chapter includes a sketch of the history of browser technologies, and the unique problems their architecture created today.
Part I: Anatomy of the Web

2. It Starts with a URL
The semantics of URL parsing, complete with the loopholes accidentally introduced by the original RFCs. The chapter also covers IDNA, character set handling, and a classification of commonly used network protocols.
3. Hypertext Transfer Protocol (download)
The inner workings of HTTP, including proxy requests, caching, conflict resolution, and chunked transfers. The chapter outlines the antics of character set and newline handling, the problems with Content-Disposition parsing, and much more.
4. Hypertext Markup Language
An overview of HTML and XHTML parsing, including an examination of error recovery modes, conditionals, subresource handling, form behaviors, etc. Provides HTML sanitization advice.
5. Cascading Stylesheets
CSS syntax. Among other things, outlines the dangers of parser resynchronization and the pitfalls of CSS3 selector logic.
6. Browser-Side Scripts
JavaScript language features and their security properties; parsing and execution model; DOM; JSON. Discusses security considerations for serving and loading dynamically generated scripts, examining properties of other documents, etc.
7. Non-HTML Document Types
From text documents to RSS to WML - a summary of all the non-HTML document types supported natively by modern browsers, and the security risks they pose to parties hosting them.
8. Browser Plugins
Security properties and other characteristics of commonly installed plugins, including Flash, Java, Silverlight, XBAP, and PDF.
Part II: Browser Security Features

9. Content Isolation Logic
Same-origin policy and its many flavors, including plugin-enforced policies, postMessage(), sessionStorage, localStorage, cookie behavior, etc. Provides an extensive discussion of unexpected interactions between these mechanisms, and advice on compartmentalizing web apps.
10. Origin Inheritance
Same-origin policy extensions implemented to deal with pseudo-URLs such as about:blank, javascript:, or data:. The chapter covers context inheritance rules and the unexpected security properties of windows and frames that point to these classes of URLs.
11. Life Outside Same-Origin Rules
Cross-domain interations permitted outside SOP. The chapter pays special attention to the frame navigation model and its consequences for inter-frame communication schemes.
12. Other Security Boundaries
Covers miscellanous additional navigation restrictions, such as port or protocol blacklists, DNS rebinding defenses, etc.
13. Content Recognition Mechanisms
A survey of content sniffing and character set detection logic, including topics such as IFRAME character set inheritance, BOM behavior, and a lot more.
14. Dealing with Rogue Scripts
Security restrictions devised to stop abusive scripts. A detailed discussion of UI timing attacks and other systemic vulnerabilities that plague the modern web.
15. Extrinsic Site Privileges
User-granted or browser-imposed privileges, from geolocation data access to the Internet Explorer zone model and MotW.
Part III: A Glimpse of Things to Come

16. New and Upcoming Security Features
A broad discussion of the ongoing HTML5 work and related security efforts, including sandboxed frames, CSP, or CORS.
17. Other Browser Mechanisms of Note
A brief review of web workers, cache manifests, notifications, navigation timing APIs, and more.
A Glossary of Web Vulnerabilities

If you have any questions or feedback about the book, please contact me at <>.