当前位置: 首页 > 知识库问答 >
问题:

使用预先指定的URL将对象上载到AWS S3

太叔景同
2023-03-14

我希望使用预先设计的URL功能,允许我的无服务器应用程序的用户上传图像。看完之后,这听起来是一个完美的解决方案,但是我有一个关于安全性的问题。

通过使用预先设计的URL方法,上传发生在客户端而不是服务器端,对此我唯一的担忧是,尽管我的应用程序要求在上传发生前进行身份验证,但这并不能防止用户上传恶意文件,因为他们可以绕过客户端检查来确定文件是否是图像。

有人对这件事有任何澄清吗?

谢谢

共有1个答案

郎伟兆
2023-03-14

正确。如果他们可以检索预先签名的URL并绕过您的客户端逻辑,那么他们可以使用该URL上传任何他们喜欢的内容。如果您不能完全控制客户端的暴露,那么您就不能信任客户端的验证,您也应该在服务器端实现规则。你可以在这里使用Lambda。

 类似资料:
  • 我知道使用以下方法限制对象的上载大小:http://doc.s3.amazonaws.com/proposals/post.html#limiting_uploaded_content 但是我想知道如何在服务器端以IAM用户的身份使用S3 SDK生成预签名url的同时完成。

  • 我正在尝试使用预先签名的URL将文件上传到Amazon的S3。我从生成URL的服务器获取URL https://com-example-mysite.s3-us-east-1.amazonaws.com/userFolder/ImageName?X-Amz安全令牌=xxfoox///xxbarxx= 不幸的是,当我将其传递给Refught2时,它会修改试图将其转换为URL的字符串。我设置了,它解决

  • 我想在一个私人的AWS S3桶托管文件,只能由我的web应用程序认证的用户访问。这些文件下载的链接必须是静态的。 简单代理方法: 我知道这可以使用代理服务来完成。在这种情况下,静态链接将指向服务,服务将处理请求用户会话的验证,如果它是有效的,服务将使用来自S3的文件内容进行响应。 预签名URL代理方法: 然而,与其实现一个代理来控制对文件的访问,我想知道是否可以使用预先设计的URL来代替? htt

  • 我正在使用预先签名的URL将视频上载到AWS S3,上载成功,但当我尝试从S3下载视频并在媒体播放器(VLC或quickTime)中播放时,它不播放! 生成的预签名URL在中运行良好,但在和中也会出现与上述相同的问题。

  • 问题内容: 我正在尝试像这样使用AngularJS和UI Bootstrap 设置: .html .js 目前,我已经能够使用所选名称更新模型,但是我的目标是通过传递整个对象。有一种干净的方法可以仅使用输入来执行此操作吗? 问题答案: 当然可以:-) 从预输入指令http://angular-ui.github.io/bootstrap/使用作为AngularJS相同的超灵活的语法选择指令进行。所

  • 这里是我的node.js预签名URL的生成 那么我在URL生成或卷曲方面的问题在哪里呢?谢谢