~/talk

Simple AND Secure?

Talkat EuroClojure 2017 · 2017-07-20..07-21· [clojure, security]
name:Joy Clark
links:none on file
slides:none on file

Concrete checklist for securing a Clojure web app: use HTTPS (Let’s Encrypt), follow OWASP Top 10 (2017), and avoid GET for state changes; use ring-anti-forgery middleware for CSRF protection and bind tokens to sessions; prevent XSS by using templates that escape by default (e.g. hiccup 2.0.0-alpha1 or Selmer) and validate input; stop injection by escaping DB queries (use libraries like yesql); store passwords with buddy-hashers (salt + hash); ring defaults supply many useful headers and HSTS.

AI-written summary · about

  1. 0:00Intro
  2. 1:27Clojure Ring
  3. 1:52Ring Requests & Responses
  4. 2:30Ring Middleware
  5. 3:31Routing with Compojure
  6. 3:55Putting it all together
  7. 4:54Where is the security?
  8. 5:56How to Write a Secure Web Application Maintain your application
  9. 7:34OWASP Top 10 2017
  10. 9:08XSS-Cross-site Scripting
  11. 10:52Validate Input - Escape Output
  12. 13:47CSRF. Cross-site Request Forgery
  13. 15:00Protect Against CSRF Don't use GET requests to change statel
  14. 16:49CSRF Protection
  15. 18:38Injection
  16. 19:42Parameterize Queries
  17. 19:58Authentication & Authorization How do I know if the user is who he says he is?
  18. 20:19Introducing Buddy
  19. 21:41Buddy-Auth
  20. 22:52Simple Auth Example
  21. 23:50Authorization with Buddy
  22. 25:21Auth Middleware
  23. 27:20HTTP Security Headers
  24. 29:56In Summary...
  25. 30:52Example Web Application: (WIP)
~/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.