~/talk

Trust No Input: Taint Analysis at Compile Time

speakerdeck:mdipirro
slides:none on file

Claims a compiler can prevent unsafe data flows by encoding taint into types and blocking untrusted values at compile time. Implements a Scala library with tainted/pure/sanitized boxes, propagation rules and a canOpen compile-time guard. Demo uses Play framework, shows an HTML injection entered into an in-memory DB then prevented by a sanitize that returns Either error or sanitized box. Notes practical tradeoffs: Java falls back to runtime checks, and gradual adoption targets high‑risk call sites first.

AI-written summary · about

  1. 0:00Taint analysis basics
  2. 10:09Static vs dynamic tradeoffs
  3. 13:25Language-based security
  4. 15:12Taint levels and rules
  5. 26:18HTML injection demo
  6. 36:21Compile-time data flow
  7. 39:11Security adoption strategies
  8. 41:00Q&A: Runtime costs and legacy
  9. 44:08Q&A: AI-assisted Copilot
  10. 46:23Q&A: Exhaustive matches
  11. 47:48Q&A: Taint in C
  12. 49:18Q&A: Tools and scalability
  13. 51:03Q&A: Simplifying taint
~/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.