实务专题 · 网站交接

报价表单附件验收:扩展名允许,不代表文件安全

这是给网站交付需求使用的合成教学例,不是客户成果、真实账号测试或认证。

“能上传成功”,不是完整交付标准

新企业网站的报价表单可能只需要参考图片,不需要任意可执行内容或私人建筑档案。先确定最少有用格式及大小限制。上传控件的accept只是界面提示,不证明服务端执行相同政策。

合成文件信息结果为什么不是安全认证
room.png,PNG声明及文件头,68字节NEXT_REVIEW_NOT_SAFE仅所填初步信息一致
quote.pdf却为PNG文件头OUTSIDE_PNG_ONLY_BRIEF文件名已超出约定格式
concept.svgOUTSIDE_PNG_ONLY_BRIEF另一格式需要独立政策
large.png,2048字节REJECT_SIZE本教学例上限1024字节

运行填好的例子

下载有限规则Node检查器和已填写输入。使用Node 24或更新版本,不需要账号或API,也不联网。

node checks.mjs quote-upload-review quote-upload-review.json

为便于测试,本例故意只设1KB上限,不建议生产照搬。程序只检查所填元数据和少量文件头,不完整解码文件。文件头像PNG,不证明剩余内容安全、可正确解析或没有恶意数据。

有用的供应商验收需求

约定格式、字节限制、服务端验证,以及谁能上传与读取。询问存储位置、命名方法、是否可能执行或被公开发现。按需要审核恶意内容扫描与内容净化,并确定保存期限与失败处理。

在授权环境测试改名文件、超大正文及未授权下载;保存拒绝样本与响应,不公开客户附件。营销表单成功,不应导致私人图纸通过存储链接泄露。

资源不上传文件、不建立收件接口。四组JSON只是静态元数据,不是攻击文件;NEXT_REVIEW_NOT_SAFE故意停在安全结论之前。真实实现需要分层防护与威胁模型审核。

官方依据与边界

OWASP文件上传指南:建议分层核验;扩展名、用户提供的MIME或文件签名单独都不够。

来源于2026年10月15日核验。输入与验收规则为原创教学设计;正式实施前还要核对当前平台版本及实际交付合同。

粘贴图片URL涉及另一项信任边界