~/talk

Secure Coding: Back to basics

Talkat Øredev 2022 · 2022-11-08..11-10· [security, frontend-architecture]
slides:none on file

Claims that making domain concepts explicit stops many bugs: use domain primitives (email/password/phone types) so wrong strings become compile errors, validate via Kotlin/Either instead of exceptions, and push semantics into entities. Quantifies risk: about 50% business logic bugs evade scanners. Practical fixes: use DTO/contract layer to prevent mass assignment, always use parameterized queries or browser trusted types plus DOMPurify for XSS. Examples and a password-validator service are implemented and reported to reduce runtime vulnerabilities.

AI-written summary · about

  1. 0:00Intro
  2. 2:40Bug types in order of personal preference
  3. 6:16The multifaceted entity
  4. 8:34Syntax versus semantics
  5. 9:07Validating a birth date
  6. 10:18Principle: Normalize input
  7. 11:12Principle: Reject invalid input
  8. 14:20Domain Driven Security by example
  9. 15:22The Domain Primitive
  10. 19:40Some validation needs to be enforced outside the primitives
  11. 20:44The UserRegistration Entity
  12. 21:40Domain validation of password
  13. 27:53API Controller responsibilities
  14. 31:16Encoding and language constructs to the rescue
  15. 31:47Confession - I failed to communicate
  16. 36:11Trusted Types - the default policy
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.