【问题标题】:Questions regarding uploading files to Amazon S3 using browser based HTTP POST关于使用基于浏览器的 HTTP POST 将文件上传到 Amazon S3 的问题
【发布时间】:2012-11-04 13:20:21
【问题描述】:
我有几个关于用户使用 JSP 页面生成的 HTTP POST 表单直接将文件上传到 Amazon S3 的问题
-
访问密钥和签名
需要暴露给用户
允许他从 JSP 上传文件
形式。在签名中我必须设置
到期时间,否则由
默认15分钟有效。
i) 用户能否使用这些详细信息上传到我的门户之外的 S3 以更新他的文件或更新/修改其他文件。
ii)。如何设置策略以避免这种情况?
用户可以将签名用于
多个请求?如果是的话如何
阻止用户做多个
上传?我如何确保
用户可以将此签名与
只请求一次?
有时可能会出现问题
具有延迟和上传的 Amazon S3。
如果 S3 的响应需要时间
并且用户尝试上传文件
再次。他会收到一个例外,
我该如何处理?
谢谢
【问题讨论】:
标签:
security
file-upload
amazon-s3
【解决方案1】:
没有密钥,公共访问密钥不能用于任何事情。 切勿泄露您的密钥。
只要您在服务器上签署策略,您就安全了。签名仅在您指定的时间和上传到特定存储桶和密钥时有效。如果没有您的密钥,用户将无法创建另一个签名来上传任何其他文件。
他们无法访问任何其他文件。
据我所知,签名到期时间只需要在他们启动上传时有效,这样您就可以设置一个非常短的时间。
【解决方案2】:
i) 用户能否使用这些详细信息上传到我的门户之外的 S3 以
更新他的文件或更新/修改其他文件。
是的,用户可以使用这些详细信息来重播操作。您可以指定文件名,以便他只能更新他上传的文件。
ii)。如何设置策略以避免这种情况?
您可以添加一些其他条件来限制访问。和“过期”一样,设置为签名生成后的 5/10 分钟。您可以添加任何其他条件,例如“user_id”或其他内容。