AI 工具可以生成 PDF、表格、演示文稿、压缩包和代码文件。文件看起来像普通附件,但其中可能包含宏、外部链接、隐藏脚本、错误权限或不应交给另一个租户的内容。把“模型生成”误当成“文件可信”,会让下载和协作链路失去最后一道检查。
先检查真实类型而不是文件名
上传或生成后,服务端应通过魔数和解析器判断真实 MIME 类型,再限制允许的扩展名。压缩包要检查嵌套层级、解压大小和路径穿越;文档要检查宏、外部引用、嵌入对象和超链接;图片要检查元数据和异常尺寸。文件名由用户或模型生成时,不能直接拼接到磁盘路径。
扫描分为静态和策略两层
静态扫描负责病毒、脚本、宏和格式异常;策略扫描负责内容分类、敏感信息、外部链接和是否允许下载。代码文件还应经过语言和依赖检查,不能只因为文件是文本就跳过安全处理。扫描结果要和文件版本绑定,重新生成或修改内容后必须重新扫描。
临时链接也需要权限边界
下载链接应使用短时效、单文件、单租户的授权,并在服务端再次校验用户身份和项目权限。不要把对象存储的永久公开 URL 直接写进 AI 回复。下载、预览、分享和删除都应有审计事件;如果用户撤回或文件被判定为高风险,旧链接应立即失效。
文件处理常常跨越模型、网关、对象存储和前端。使用 top-api.cc 这类统一入口时,可以把文件元数据、生成请求和租户标识关联起来,但原始文件仍应放在独立的受控存储中,不要把大文件和敏感正文长期写入网关日志。
发布前的检查表
- 真实 MIME 类型和扩展名是否一致;
- 是否扫描宏、脚本、嵌套压缩和外部链接;
- 是否限制文件大小、解压比和目录穿越;
- 是否按租户和项目隔离存储与下载;
- 临时链接是否短时效且可撤销;
- 扫描结果是否绑定文件版本;
- 高风险文件是否进入人工复核而非直接下载。
生成文件的安全目标不是阻止所有文件,而是让“可预览、可下载、可执行、可分享”成为不同的权限级别。尤其是代码、脚本和带宏文档,默认应当按高风险内容处理。
参考资料:OWASP LLM 应用风险项目、OWASP 文件上传安全建议,以及对象存储的临时授权文档。具体扫描器应在隔离环境中验证,不要把单一产品的检测结果当作完整保证。
如果需要把多模型生成、文件元数据和成本记录串起来,可以先让 top-api.cc 处理调用统一性,再把文件扫描与存储权限放在独立的安全服务中。
Leave a Reply