~/talk

The dangerous, exquisite art of safely handing user-uploaded files.

Talkat PyCon AU 2016 · 2016-08-12..08-16· [security]
linkedin:tveastman
slides:none on file

Gives five concrete steps (step 0–4): avoid uploads if possible, throw away the entire file name and store uploads in a quarantine outside the webroot. Shows why Django defaults that save into webroot are risky, demonstrates ImageMagick exploits that run shell commands inside crafted images, recommends parsing files in quarantine, rebuilding a safe copy before serving, and using AppArmor or moving files via private S3 buckets and background verification to prevent execution and data leaks.

AI-written summary · about

  1. 0:00Intro
  2. 1:17Getting it right
  3. 2:17Django defaults
  4. 3:13The scope for damage
  5. 3:55The steps
  6. 5:28Web server assumptions
  7. 8:09PHP
  8. 13:10File extensions
  9. 13:38Throw away the file name
  10. 16:53Advice
  11. 17:35Imagemagick
  12. 19:15AntiVirus
  13. 21:09AppArmor
  14. 22:21Build a new file
  15. 23:16Data hygiene
  16. 24:44Huawei example
  17. 25:17Outro
~/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.