Cracking the Code to Secure Software
summary
Shows concrete design moves that stop real bugs: replacing loose strings with domain primitives (phone numbers that reject script tags, quantities that forbid -1), modeling mutable records as immutable entity snapshots with separate read/write paths to improve integrity and availability, and wrapping sensitive values in a read-once wrapper that explodes if accidentally serialized or logged. Examples include a minus‑one shopping bug eliminated by a Quantity primitive and discovery of Tomcat session dumps via the read‑once detector; patterns are applied in code and shown to work.
AI-written summary · about
chapters (25)
- 0:00Intro
- 0:59What's Cracking the Code... all about?
- 2:28What we'll cover today
- 3:25Case 1: Cross Site Scripting (XSS)
- 3:59Stored XSS
- 4:32Reflective XSS
- 6:37Technical Analysis
- 6:57Technical Solution
- 7:10Case 2: Buying-1 books
- 9:44But Quantity isn't an integer...
- 12:34Quantity as a Domain Primitive
- 13:40Invalid quantities are rejected
- 14:24tighten your design
- 16:13Use a Domain Primitive Instead
- 16:53Domain Primitives prevent XSS
- 18:08Security in Depth
- 24:12Availability and Mutable State
- 24:51Design Stereotypes in DDD
- 25:46How should we represent en Order?
- 26:51Entity Snapshots
- 29:06Order as an Entity Snapshot
- 30:11Updating an Order
- 34:27Accidental Leakage
- 35:45Evolving domain model
- 37:25Read once Object
related talks
51mPreventing Security Bugs through Software Design
38mSecure Coding: Back to basics
58mBuilding antifragile systems using Secure by Design
59mSecure Coding Back to Basics
46mStrengthening Java Apps: Best Practices in Secure Coding for Java Developers
23mSecure Code, Safe Future: Mastering Security in Critical Software Development
52mArm yourself with Domain Driven Security. It's time to slay some security trolls?
52mSecure by Design, Revisited - Insights & Pitfalls
