乾貨! 這篇很重要! 一定要看 !
PHP SSRF Techniques
How to bypass filter_var(), preg_match() and parse_url() ?
原文出處:https://medium.com/secjuice/php-ssrf-techniques-9d422cb28d51
波波觀點:URL 驗證最怕解析差異
SSRF 防禦常會用 filter_var、preg_match 或 parse_url 檢查 URL,但不同函式、代理、DNS 與後端 HTTP client 對同一字串的解析可能不同。只靠字串規則很容易出現繞過,尤其是在跳轉、混合編碼、IPv6、內網位址與 DNS 解析場景。
防禦檢查
- 使用明確白名單,不接受任意 URL 由伺服器代抓。
- 解析後再檢查 scheme、host、port,並在連線前後都驗證 IP。
- 封鎖內網、metadata、localhost、link-local 與保留位址。
- 限制跳轉、timeout、回應大小與可使用的 HTTP method。
實務建議
SSRF 的影響取決於伺服器所在網路。雲端環境要特別保護 metadata service;內網環境要避免讓 Web 應用成為掃描內網的跳板。日誌中也應能追蹤伺服器代發出的請求。










