用户提供 URL 时,验证目标范围、解析结果、重定向和出站权限,避免导入服务成为访问内部系统的通道。

“输入一个链接,服务器自动下载”是常见功能,也意味着服务器替用户发起网络请求。图片代理、网页预览、PDF 转换和远程附件导入,都应纳入同一类出站访问审查。
先确定功能真正需要访问哪里
如果只需从合作方获取文件,优先建立明确的目标清单;如果必须支持公网任意地址,应单独设计受限的获取服务。把下载任务与拥有数据库或云管理权限的主业务进程分离,可以缩小异常请求的影响范围。
OWASP 的 SSRF 防护指南讨论输入校验与网络层控制,并提醒自动跟随重定向可能绕过原有检查。验证域名字符串还不够,解析结果、IPv4/IPv6、实际连接目标和后续跳转都要遵守相同边界。
上线前检查四个环节
- URL 解析:仅接受业务需要的协议,使用成熟解析器,拒绝不支持或含糊的输入。
- 目标限制:阻止未经授权的内部、回环、链路本地与元数据服务目标,结合网络出站策略实施。
- 下载约束:设置连接与读取超时、响应大小、跳转次数和内容类型处理规则。
- 结果使用:下载成功后仍按不可信文件处理,不把远程正文直接解释成代码或模板。
用受控目标验证,不探测真实内网
在测试环境准备一个允许的外部服务、一个模拟受限服务和一个可配置跳转服务。检查直接访问、跳转、DNS 变化和超大响应等场景。验收应证明请求在网络连接或内容处理前被正确限制,而不是最终页面刚好报错。
日志保留任务标识、目标类别和拒绝原因,避免记录带秘密的完整 URL。增加新合作域名时走配置变更流程,避免为了临时兼容关闭整组出站限制。
参考:OWASP:SSRF Prevention Cheat Sheet。核对日期:2026年10月4日。
