我们可以在服务器端生成密钥并在那里签名

时间:2015-06-24 04:50:05

标签: java jquery fine-uploader

我想在我的网络应用程序中实现图像上传,该应用程序在java中有后端,在javasciprt / jquery / html / css中有前端,并在亚马逊s3上传。

我可以看到Fine-uploader为文件生成一个高度随机化的密钥,并通过将其传递给签名端点(以及更多标题)来获得该密钥。

我的问题是,如果有人将一些其他密钥发送到签名端点并使用该密钥上传文件,该怎么办?在某种程度上,他可以尝试覆盖我已放置的文件。

如何在精细上传器中实现以下逻辑 -

  1. Fine uploader命中签名终点
  2. 我在服务器上生成一些随机密钥(签署密钥和其他标头)并将签名,策略和密钥传递回客户端
  3. 现在在同一个键上我上传和浏览
  4. 请原谅我的拼写错误和我的英语不好

1 个答案:

答案 0 :(得分:1)

虽然您的初始问题有点不清楚,但在您的评论中,您已表示希望确保用户不会篡改请求/策略,可能是为了尝试上传具有重复名称的文件。如果您想阻止这种情况,只需在服务器端查询您的数据库(或使用S3 API的存储桶),作为处理Fine Uploader的签名POST的一部分。如果已存在该名称的文件,则返回带有JSON消息体的500响应,如下所示:{"invalid": true}。这向Fine Uploader发出信号,表明策略或请求标头无效,上传将被取消。