开发者社区 问答 正文

关于阿里云OSS 上传文件 policy OSSAccessKeyId signature安全问题

今天在使用的 VUE + plupload 做阿里云OSS上传时,一直有个问题纠结着我 在上传文件时:开发者模式》 Network 明显可以检测到: policy OSSAccessKeyId signature 这3个数据err.png

如上图,当用户上传文件时,检测到这个数据后就完全可以把这个记下来,然后随意的无限制无脑上传文件,甚至获取OSS文件目录,删除文件,在OSS创建目录等等!

而我前端想限制上传文件的大小,类型等在暴露这个后毫无用处

我已经吧这个记录下来写死到 代码中测试了 完全可以不收任何限制的胡乱上传!

请问这种情况如何才能安全有效的限制用户行为?

展开
收起
奇侠网络 2021-07-22 21:04:29 1467 分享 版权
阿里云 AI 助理回答

面对您提到的安全问题,确保阿里云OSS上传过程安全且可控的关键在于合理设计和实施权限管理策略。以下是一些建议来帮助您增强安全性:

  1. 使用STS(Security Token Service)临时凭证:不要直接在前端使用长期的AccessKey和SecretKey,而是通过后端服务生成STS临时凭证分发给前端。STS凭证具有有效期限制,并且可以细粒度地控制用户权限,比如只允许上传、下载或列出特定Bucket下的文件等。这样即使凭证被截获,攻击者也只能在有效期内进行有限的操作。

  2. 前端验证与后端校验相结合:虽然前端的限制可以被绕过,但仍然需要在前端实现基本的文件类型、大小验证,以提供即时反馈给用户。同时,在后端接收上传请求时再次进行严格的校验,确保只有符合规则的文件才能通过STS凭证上传到OSS。后端校验是安全的最后一道防线。

  3. 利用OSS的Bucket Policy和ACL(Access Control List):通过设置Bucket Policy和Object ACL,您可以进一步细化对OSS资源的访问控制。例如,限制某个Bucket只能由特定的用户或角色进行写入操作,或者仅允许从特定的IP地址访问等。

  4. 启用OSS的跨域资源共享(CORS)策略:如果您需要支持跨域上传,可以通过配置CORS规则来限制哪些源可以发起请求,以及允许哪些HTTP方法,从而增加一层防护。

  5. 日志监控与报警:利用阿里云的Log Service或OSS的事件通知功能,监控上传活动,设置异常行为的报警机制。一旦发现有非预期的上传行为,立即采取措施。

  6. 定期审计与凭证轮换:定期检查您的STS策略和AccessKey使用情况,及时回收不再使用的凭证,并周期性地更换AccessKey以降低风险。

综上所述,通过结合使用STS临时凭证、前后端双重验证、细致的OSS策略配置、日志监控及定期审计等手段,可以显著提升您的OSS上传流程的安全性。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答