首页/安全/漏洞与攻击面速查/SSRF 服务端请求伪造原理与防护
Web 漏洞原理与防护55 条

SSRF 服务端请求伪造原理与防护

SSRF 指攻击者诱导服务端向任意地址发起请求,可用于探测内网、读取云元数据或触达内部管理接口;防护核心是目标白名单与解析后校验(防 DNS 重绑定),而不是简单黑名单。

漏洞与攻击面速查安全更新于 2026-10-12
常见入口URL 抓取、图片处理、Webhook 回调、PDF 生成、远程导入
危害内网探测、云元数据读取、内部服务调用
防护目标白名单 + 解析 IP 校验 + 禁止跟随重定向 + 出站网络限制

校验要点(Python 示意)

校验要点(Python 示意)
import ipaddress, socket
from urllib.parse import urlparse

def is_allowed(url, allow_hosts):
    u = urlparse(url)
    if u.scheme not in ('http', 'https'):
        return False
    if u.hostname not in allow_hosts:
        return False
    ip = ipaddress.ip_address(socket.gethostbyname(u.hostname))
    return not (ip.is_private or ip.is_loopback or ip.is_link_local)
先解析再校验、校验后固定使用该 IP 连接,可缓解解析与使用之间的重绑定问题;出站网络层再限制可访问网段与端口。

易错点

  • 仅做 127.0.0.1 与 10. 开头的字符串匹配:十进制 IP、IPv6 映射地址等写法可绕过,应解析为 IP 对象判断

数据来源与参考

  • OWASP SSRF Prevention Cheat Sheet
  • 云厂商元数据服务安全文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌