~/talk

Ending Injection Vulnerabilities

Talkat PHP UK Conference 2025 · on Wednesday, 2025-02-19· [php, security, testing]
slides:none on file

Shows concrete bugs: string concatenation into SQL and order‑by and image src exploits that let unions or onerror run, plus Twig and command‑line injection examples. Demonstrates a practical fix using literal-string checked by PHPStan and Psalm, cites Meta/Google precedents, and gives an is_literal function implementation and a working static‑analysis workflow that flags mistakes immediately; RFC effort fails politically but the prototype and webpages exist and the checks actually catch real issues.

AI-written summary · about

  1. 0:00Injection vulnerabilities intro
  2. 1:08Escaping strings pitfalls
  3. 2:32Parameterized queries PHP
  4. 4:42ORM query builder risks
  5. 6:27SQL injection ORMs
  6. 7:10Laravel raw queries dangers
  7. 8:57Order by raw injection
  8. 11:26Exploiting order by clauses
  9. 13:16Direct SQL mistakes
  10. 13:59Doctrine query builder
  11. 16:07HTML templating injection
  12. 17:56Image JS injection
  13. 19:21Command line injection
  14. 20:04Taint checking limits
  15. 24:42Escaping context matters
  16. 26:07Trusted vs untrusted strings
  17. 29:18WHERE IN special cases
  18. 31:23Parameterized queries plans
  19. 32:46Field name injection
  20. 34:53Literal string types today
  21. 36:15Static analysis Psalm PHPStan
  22. 38:29Static analysis challenges
  23. 41:04PHP literal string proposal
  24. 43:10Summary call to action
~/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.