导入功能检查
批量导入把用户提供的文件交给服务端解析,风险集中在解析链路上:文件类型伪装可绕过只在前端做校验的实现;超大文件或超长行列会耗尽内存与连接;公式与宏可能被原样存下并在下游系统打开时生效;异常编码与畸形结构则可能直接触发解析器崩溃。这类检查的纪律是样本必须无害:只观察服务端的校验行为、错误提示质量与资源限制,不构造可执行的恶意载荷。
基本信息
| 检查点 | 类型与内容校验、大小与行数限制、解析隔离 |
|---|---|
| 风险类型 | 解析崩溃、注入到下游系统、资源耗尽 |
| 样本要求 | 全部为无害文本与结构异常样本 |
| 修复方向 | 服务端校验内容、限制体量、异步解析并设超时 |
典型使用场景
- 批量建档:用户导入客户或设备清单,字段数量与长度不可控
- 财务对账:导入银行流水或发票明细,含金额与公式语义字段
- 批量配置下发:运维导入配置文件或地址清单
- 数据迁移:从旧系统导出的结构化文件一次性入库
- 第三方交换:合作方定期投递文件,格式约定执行不一
验证步骤
验证步骤
1. 用无害样本验证类型校验:改扩展名、改文件头与伪装类型
2. 构造结构异常样本:超长单行、超多列、缺失表头与异常编码
3. 观察服务端校验时机与错误提示质量 # 提示不应暴露服务器路径
4. 评估资源限制:是否限制文件大小、行数、解析超时与并发
5. 检查解析结果如何进入下游,是否存在二次导出与打开环节文件特征与观察点
| 文件特征 | 观察点 | 潜在风险 |
|---|---|---|
| 伪装扩展名 | 服务端是否按内容而非后缀判断 | 绕过校验,落入解析器 |
| 超大或超长结构 | 是否有体量与字段级限制 | 内存耗尽导致服务不可用 |
| 公式与宏语义字段 | 是否原样入库并再导出 | 下游打开时触发公式执行 |
| 异常编码与畸形结构 | 解析失败是否被妥善处理 | 进程崩溃或错误信息泄露 |
修复视角:服务端按内容校验类型与结构、限制文件体量与字段长度、把解析放入异步队列并设置超时,同时规范错误提示。