预检服务能取图,先要证明它只去允许的地方
团队接入 Flux Art 前,可能先用自己的服务器下载参考图,检查文件是否可读。这一步不应变成任何人填一个网址、服务器就代为访问的通用抓取器。输入是图片地址,也可能把请求引向不属于素材流程的网络目标。本文讨论接入方自建预检服务的防护设计,没有测试任何真实系统,也不声称发现 Flux Art 漏洞。能取得内容与允许发出请求,是两个独立判断。
先缩小业务允许的来源范围
若业务只从自有素材库或固定合作存储取图,优先使用登记的素材编号,由服务端查找已批准地址,而不是接收任意完整URL。列清允许的协议、精确主机、端口和路径用途,未经登记的来源转人工确认。域名里包含某个品牌字符串不等于属于它;用成熟的URL解析与明确比较,不用一段模糊包含判断放行。来源登记仍不替代客户素材授权,允许连接也不代表可以使用图中内容。
按应用和网络两层设计防护
OWASP 的 SSRF 防护资料区分固定可信目标与任意外部目标两类场景,并建议结合应用校验和网络约束,参考 https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html 。本文只讨论来源可收敛的参考图流程,不承诺几条规则能安全支持所有公网地址。下表是假设验收结构,不是真实攻击或防护实测;未知目标保持待核,不能为完成一批图片就临时开放全部出口。
| 边界位置 | 要确认什么 | 未确认时 |
|---|---|---|
| 业务输入 | 素材编号或明确登记来源 | 拒绝任意URL代取 |
| 地址解析 | 协议主机端口符合策略 | 保留待核,不模糊匹配 |
| 实际连接 | 只连接已校验许可目标 | 停止并记录策略差异 |
| 跳转与重试 | 再次执行同一目标校验 | 不继承第一跳许可 |
| 网络出口 | 预检环境仅有必要访问能力 | 隔离验证后再安排变更 |
域名通过还不等于实际连接通过
来源主机符合登记后,还要由可靠实现核对解析出的地址是否符合网络许可,并保证真正连接的就是已检查目标;不能检查一次DNS结果后,让另一次不受控解析决定连接去向。IPv4、IPv6、重试和备用连接路径都应覆盖。保留原主机的TLS名称与证书验证,不通过关闭证书校验来简化连接。具体实现交给熟悉网络边界的人员复核,本文不提供可直接当作完整安全网关的简短代码。
重定向不能继承第一跳的许可
最简单的受控策略可以拒绝自动跳转,再按实际业务评估是否确需支持。若确需跟随,每次目标变化都重新经过同一目的地策略,不能因为第一跳在白名单就信任后续所有位置。遇到未登记主机、受限网络或循环立即停止,记录去敏原因。不要把失败地址转给另一个更高权限的代理继续抓取,那会把原有边界变成摆设。跳转许可和是否携带认证信息也分别检查。
出口限制保护校验遗漏的情况
预检任务不应与内部管理服务共享不受限的网络访问能力。按实际部署限制它能到达的网络与服务,并把不需要的凭据和挂载移出该任务环境。应用校验与出口策略互相补充,不把任何一层当成永久不会出错。配置变更后核对真实生效范围,不能只保存一份文档就说隔离完成。这里不要求读者修改生产防火墙;应先在获授权的隔离环境设计与验证,再走自己的变更流程。
取到响应后仍要限制内容处理
目标允许并返回成功后,还需控制时间、下载字节和解码资源,拒绝不符合业务要求的内容;这些控制解决的是另一层问题,不能替代连接前判断。预检结果记录执行环境和时间,不写成 Flux Art 服务器已经读取成功。素材地址的完整签名信息受控保存,普通报告用稳定内部标识。原图访问失败时由来源负责人处理权限或文件,不试探其他路径,不把整个存储桶设为公开来换取通过。
测试使用虚拟目标,不访问真实敏感端点
在自有隔离环境模拟允许来源、未登记来源、跳转后变为不允许目标以及解析与连接不一致等情况。使用本地测试替身或受控网络,不向真实内部管理服务、云元数据地址或第三方目标发出探测。验收应看到拒绝发生在不允许连接之前,并且重试、备用路径不能绕过;正常获授权的素材仍能完成既定流程。本文没有执行这些测试,实际覆盖率与残余问题应由测试记录证明。
交付的是边界证据,不是一个绿色链接灯
最终清单列批准来源、解析与连接约束、跳转策略、出口范围、实际测试版本和仍未知的情况。新增素材来源时重新评估,而不是让一次临时例外永久变成放行规则。Flux Art 当前接入说明可从 https://flux-art.net/zh/openapi/reference 查阅;本文的预检服务由接入方维护,不是平台新增按钮。Flux Art 由 MORNING STAR INDUSTRY LIMITED 运营,是多模型 AI 视觉创作与生产平台,支持商业使用;输入素材权利与商品真实性另行核验。