~/talk

Don't Panic: A Developer's Guide to Building Secure GraphQL APIs

Talkat NDC Oslo 2023 · 2023-05-22..05-26· [security, graphql]
slides:none on file

Covers real breaches (GitHub 2020 missing auth, WordPress plugin DoS, Instagram archive exposure) and demos a local vulnerable instance using Damn Vulnerable GraphQL API and Postman to show exploits and fixes. Recommends concrete mitigations: persisted queries to shrink attack surface, max depth checks and query cost analysis plus rate limits to stop expensive and batch attacks, GraphQL Shield–style permission rules, and strict validation for custom scalars. Cites State of GraphQL 2022 (≈3,000 devs; persisted queries ~20.5%, depth/rate use ~23–26%) and Gartner adoption forecast.

AI-written summary · about

  1. 0:00Introduction
  2. 0:42About Me
  3. 2:07GraphQL Story
  4. 4:19NDC App
  5. 7:18GraphQL Gateway
  6. 8:26Why GraphQL Matters
  7. 10:57Dont Panic
  8. 11:34GitHub
  9. 11:59WordPress
  10. 12:13Instagram
  11. 12:45National Vulnerability Database
  12. 14:12Word Cloud
  13. 15:00Example
  14. 15:42The Collection
  15. 17:39Creating a New Request
  16. 18:02In introspection
  17. 20:13Field Suggestions
  18. 21:23Denial of Service
  19. 22:03Batch Query Attack
  20. 22:27Multiple Attempts
  21. 22:47Recursive Relationships
  22. 23:54Duplicate Fields
  23. 24:07Fragments
  24. 24:52Denialist
  25. 25:16SQL Injection
  26. 27:36Authorization
  27. 28:30Denial of service attacks
  28. 29:37Batch attack
  29. 30:56Persistent queries
  30. 32:40GraphQL introspection
  31. 33:26Custom Scalars
  32. 34:46State of GraphQL
  33. 36:41Arrested Development
  34. 37:17GraphQL Foundation
  35. 38:10Resources
~/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.