CI集成上传安全测试

1 人参与

文件上传的安全测试如果只在上线前手工跑一次,我会不太放心:下一次改动可能重新让客户端文件名决定落盘位置。把测试接进 CI,关键不是堆更多样本,而是把“服务端到底信任了什么”变成每次提交都会验证的断言。

我会先选最能暴露边界问题的用例:合法图片应当正常上传;客户端伪造文件类型、提交危险扩展名,或试图用目标文件名改变存储路径时,服务端必须拒绝请求,或强制使用自己生成的安全名称。这里不能只看接口返回了什么,还要检查存储结果:危险文件是否真的没有写入,合法文件是否仍能按预期读取。否则,一个看似被拒绝的请求,仍可能留下不该存在的文件。

如果系统提供下载或预览,我还会加入跨账号测试:一个账号上传的文件,另一个无权访问的账号不能仅靠文件标识取回。这样,流水线覆盖的就不只是“传上去是否安全”,还有“谁能取回来”。

阻断规则要分清轻重。路径穿越、校验与落盘变量不一致等结果明确的用例,失败就应阻断合并;依赖具体解析环境、判定容易波动的内容检查,可以先告警并复核。测试应在隔离环境运行,使用可清理的测试文件,不实际执行可疑内容。修复过的问题则要留下对应的回归用例——我更看重这种朴素的保障:代码可以重构,但同一条信任边界不能悄悄失守。

参与讨论

1 条评论
  • 电路之翼

    只看接口返回,确实容易漏掉落盘结果

    回复