我允许用户直接上传到s3而不需要通过服务器;一切都很完美;我唯一担心的是安全问题。
在我的 javascript 代码中,我检查文件扩展名。但是我知道在 javascript 代码中用户可以操作脚本——在我的例子中允许上传 xml 文件——(自客户端上传)因此他们不能替换我的存储桶中的 crossdomain.xml 并因此能够控制我的桶?
注意:我使用的是存储桶拥有者访问 key 和 secret key 。
更新:
有什么可能的方法来解决这个问题......?
最佳答案
如果您不反对运行额外的资源,您可以通过运行 Token Vending Machine 来实现。 .
这里是要点:
- 您的 token 自动售货机 (TVM) 以低权限用户身份运行。
- 您的客户端代码仍然直接上传到 S3,但它需要联系您的 TVM 以获得临时的、用户特定的 token ,以便在用户登录时访问您的存储桶
- TVM 调用 Amazon Security Token Service为您的用户创建临时凭据以访问 S3
- S3 API 在发出上传/下载请求时使用临时凭证
- 你可以定义polices在您的存储桶上限制每个用户可以访问的存储桶区域
详细介绍了使用每用户访问权限创建类似“保管箱”服务的简单示例 here .
关于javascript - 用户可以操纵 javascript 来覆盖 S3 crossdomain.xml 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14215557/