Input sanitisation
Every URL submitted to the capture engine passes through a strict SSRF blocklist before Playwright navigation. Localhost, metadata services (169.254.169.254), private ranges (10.x, 172.16–31.x, 192.168.x), and IPv6 loopbacks are all rejected at the schema-validation layer — not just in the worker.