仅前端校验文件类型的IPFS图片上传应用是否存在漏洞风险?
问题解答:仅前端校验IPFS图片上传的风险与防护
核心结论
仅靠前端校验完全无法阻止黑客上传恶意文件,即使你测试时JS文件以文本形式返回,依然存在多种对站点或用户造成危害的可能。
具体风险分析
- 前端校验可轻易绕过:黑客只需用抓包工具(如Burp Suite)修改上传请求,就能跳过前端的文件类型检查——比如把JS文件后缀改成
.jpg,或者在文件开头添加图片格式的魔数(如GIF的89504E47),就能顺利上传到IPFS。IPFS本身不做文件类型校验,只要请求合法就会存储文件。 - 恶意代码间接执行风险:
- SVG文件内嵌脚本:SVG是合法的图片格式,但可以内嵌
<script>标签。如果你的应用用<img>加载这类恶意SVG,部分旧浏览器或特定渲染环境可能执行其中的脚本,导致XSS攻击。 - 诱导用户执行:黑客可以上传伪装成图片的可执行文件(如把exe文件改后缀为
.png),虽然IPFS返回时是文本,但用户如果将文件保存到本地并打开,就会触发恶意程序。此外,还可以上传钓鱼HTML文件,通过IPFS链接诱导用户访问并输入敏感信息。
- SVG文件内嵌脚本:SVG是合法的图片格式,但可以内嵌
- 其他危害:
- 上传大文件或海量垃圾文件,若你的应用对用户上传内容做pin操作,会消耗大量带宽和存储资源;
- 上传违法违规内容,你的应用作为上传入口可能面临法律风险。
防护方案
- 强制后端校验(核心):在文件上传至IPFS前,在后端完成严格校验:
- 检查文件魔数(而非仅后缀),确认是真实的图片格式;
- 限制文件大小,防止资源滥用;
- 对SVG文件做内容扫描,移除内嵌的脚本或危险标签;
- 可选:对接病毒扫描接口,检测恶意文件。
- IPFS层面防护:
- 不要自动pin所有用户上传的文件,仅pin必要内容,或设置pin的过期时间;
- 若使用第三方网关,利用其安全配置过滤危险内容;若自建网关,配置规则限制可访问的文件类型。
- 前端增强(辅助):在前端增加文件内容的初步检测(如读取文件头),但仅作为用户体验优化,不能替代后端校验。
内容的提问来源于stack exchange,提问作者Stephen Fong
相关产品推荐
相关产品推荐

