首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当上传一个文件到AWS-S3时,如果对象键已经存在于存储桶中,那么lambda函数如何拒绝PutObject操作?

当上传一个文件到AWS-S3时,如果对象键已经存在于存储桶中,那么lambda函数如何拒绝PutObject操作?
EN

Stack Overflow用户
提问于 2019-05-01 02:55:12
回答 1查看 207关注 0票数 0

我刚刚意识到,如果我允许浏览器将文件上传到我的S3存储桶中(使用来自我的服务器的会话令牌),攻击者就可以使用已知的对象键来使用这些临时权限来覆盖那些文件(并替换为恶意或空内容)。

有人说解决方案是使用对象版本控制,但我想知道lambda函数是否可以拦截PutObject请求,检查存储桶中是否已经存在该键,如果存在,则拒绝该操作。

EN

回答 1

Stack Overflow用户

发布于 2019-05-01 17:17:37

简短的回答是否定的。

这是因为S3最终是一致的。即使您做了一些聪明的事情,比如尝试使用getObject来查看文件是否存在,您也很可能在预期来自攻击者的繁重的快速负载下得到一个假阴性。

如果你想确保一个带签名的url只被使用一次,那么你必须用你自己的功能替换带签名的url功能。一个例子是使用API Gateway + Lambda + DynamoDB。在这种情况下,您将创建一个'upload token‘,并将其保存到DynamoDB并返回给用户。当用户随后使用令牌上传文件时,它将从DynamoDB中删除(可以立即保持一致)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55927140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档