前端直传Azure Blob Storage的安全顾虑:文件元数据是否会被篡改?
前端传递Azure Blob文件元数据的篡改风险说明
核心结论
只要是在客户端侧传递时长这类和计费相关的敏感数据,必然存在被恶意篡改的可能,不存在“概率高低”的问题,是完全可控可篡改的。
具体原因
- Angular运行在用户浏览器环境,所有前端逻辑、网络请求完全对用户开放。稍有基础的开发者都可以通过浏览器控制台抓包,在调用后端API前直接修改请求里的时长参数,甚至可以完全绕过前端逻辑,直接构造携带虚假时长参数的请求调用你的后端接口。
- HTTPS传输加密只能防止数据在客户端到服务端的中间传输链路被第三方窃听、篡改,完全无法防止客户端本身主动修改要发送的请求内容。Azure返回给前端的元数据本身是可信的,但数据一旦到达用户本地设备,就脱离了你的管控,修改成本极低。
推荐修复方案
- 废弃前端传递时长参数的逻辑,前端上传完成后仅向后端传回Azure返回的
blob唯一资源标识符或访问路径,由后端主动向Azure Blob Storage拉取对应文件的元数据,或直接拉取音视频文件头信息自行计算时长后再写入数据库,全程数据链路都在你可控的服务端侧。 - 如果担心后端拉取文件消耗资源,也可以配置Azure Blob的上传完成事件触发规则,上传完成后由Azure直接调用你的后端服务接口回传文件信息,链路完全在服务端之间,彻底规避前端篡改风险。
内容的提问来源于stack exchange,提问作者Setanjan Roy
相关产品推荐
相关产品推荐

