SSRF khiến server gửi request đến internal services (AWS metadata 169.254.169.254, internal APIs) thay vì external URLs — phòng chống bằng allowlist domains, block private IP ranges, và IMDSv2 trên AWS; DNS rebinding cần check IP ngay trước khi connect.
SSRF (Server-Side Request Forgery) xảy ra khi attacker khiến server gửi requests đến URLs mà attacker kiểm soát — bao gồm internal services không accessible từ internet (AWS metadata service 169.254.169.254, internal APIs, databases). Ví dụ: webhook URL validation — fetch(req.body.webhookUrl) → attacker truyền http://169.254.169.254/latest/meta-data/iam/security-credentials/ để đọc AWS IAM credentials. Tại sao nguy hiểm: server thường có quyền truy cập nội bộ rộng hơn external clients; cloud metadata services thường accessible từ container nhưng không từ internet. Phòng chống: Allowlist: chỉ cho phép fetch đến specific domains; không thể fetch sang domains không có trong allowlist. Block private IP ranges: validate URL trước khi fetch — reject 10.x.x.x, 172.16.x.x-172.31.x.x, 192.168.x.x, 127.x.x.x, 169.254.x.x (link-local); Node.js: resolve hostname → check IP range. SSRF prevention library: ssrf-req-filter npm package — tự động block private IPs. Network-level controls: container/serverless không có quyền network đến metadata service (IMDSv2 trên AWS — require token). DNS rebinding attack: attacker kiểm soát DNS, resolve public IP khi validate, resolve private IP khi fetch — fix bằng cách bind socket và check IP ngay trước khi connect. Pitfall: check URL một lần rồi fetch lần khác → DNS rebinding attack opportunity.