SSRF 与命令执行防护:别让用户输入决定服务器去哪儿、执行什么

围绕图片抓取、文档转换和运维接口,分别控制出站目的地、进程调用与运行权限。

本文目录

两类风险的目标不同

图片抓取和网址预览可能让服务端访问用户指定的地址,文档转换则可能调用外部进程。前者需要控制网络目的地,后者需要避免输入改变命令结构。它们可以出现在同一功能中,应分别审查,而不是用一个“已过滤参数”的结论覆盖。

出站控制覆盖解析与重定向

按业务需求限制协议、目标和端口,并在地址解析及重定向后重新判断目的地。将运行环境的出站权限缩小到必要服务,可降低应用校验遗漏的影响。内网地址、回环地址和云元数据入口不能因用户提供了一个看似合法的域名就自动放行。

能用库完成的工作不拼接 shell

优先使用处理文件或数据的库接口。确需调用程序时,将程序与参数分开传递,并针对参数含义做允许列表校验;只转义特殊字符仍可能留下危险选项。转换进程使用低权限账号、受限目录和执行时间,避免与主业务共享敏感凭证。

验证拒绝路径与清理行为

在隔离测试环境验证不允许的目的地被拒绝、异常任务会超时退出、临时文件能清理,并检查错误信息是否泄露内部路径。日志保留请求关联信息而不记录完整密钥。产品入口防护之外,出站网络与进程权限必须同步收紧。

参考资料

OWASP SSRF prevention

OWASP OS command injection defense

继续阅读

查看相关内容

返回行业资讯 联系技术支持