有关使用基于浏览器的HTTP POST将文件上载到Amazon S3的问题

时间:2011-01-27 18:05:06

标签: security file-upload amazon-s3

我有几个问题,关于用户使用JSP页面生成的HTTP POST表单直接将文件上传到Amazon S3

  • 访问密钥和签名 需要向用户公开 允许他从JSP上传文件 形成。在我必须设置的签名中 到期时间或者通过 默认它有效15分钟。

    i)用户是否可以使用这些详细信息上传到门户网站外的S3以更新文件或更新/修改其他文件。

    ⅱ)。如何设置策略以避免这种情况?

  • 用户是否可以使用签名 多个请求?如果是的话怎么样 阻止用户做多次 上传?我如何确保 用户可以使用此签名 请求只一次?

  • 有时可能会出现问题 具有延迟和上传功能的Amazon S3。 如果来自S3的响应需要时间 并且用户尝试上传文件 再次。他会收到一个例外, 我怎么处理这个?

感谢

2 个答案:

答案 0 :(得分:3)

如果没有密钥,公共访问密钥不能用于任何内容。 永远不要公开您的密钥。

只要您在服务器上签署该政策,您就是安全的。签名仅在您指定的时间以及上载到特定存储桶和密钥时有效。没有您的密钥,用户无法创建另一个签名来上传任何其他文件。

他们无法访问任何其他文件。

据我所知,签名到期时间只需在启动上传时有效,因此您可以设置很短的时间。

答案 1 :(得分:0)

  

i)用户是否可以使用这些详细信息上传到门户网站之外的S3   更新他的文件或更新/修改其他文件。

是的,用户可以使用这些详细信息重播操作。您可以指定文件名,以便他只能更新他上传的文件。

  

ⅱ)。如何设置策略以避免这种情况?

您可以添加一些其他条件来限制访问权限。与“到期”一样,将其设置为签名生成后的5/10分钟。并且您可以添加任何其他条件,例如“user_id”或其他。