File upload 在您的web应用程序中,将文件上载到S3时,从客户端直接将文件上载到S3是否安全?

File upload 在您的web应用程序中,将文件上载到S3时,从客户端直接将文件上载到S3是否安全?,file-upload,amazon-web-services,amazon-s3,File Upload,Amazon Web Services,Amazon S3,在我的应用程序中,用户将上载大量图像文件。这是一个照片托管网站。对于这种情况,我考虑直接从客户端将文件上传到AmazonS3。这安全吗?我担心安全问题。我是否应该简单地将文件上传到我的服务器,然后将其发送到s3?您肯定应该通过自己的服务器进行上传,这样您就可以控制谁可以上传什么。许多web应用程序都有简化这一过程的模块。 永远不要接受用户的输入(更不用说上传了),因为他们看起来是。。。您需要能够进行健全性检查,并且对于任何类型的二进制软件(可能是恶意软件)也需要进行检查。最佳做法是允许客户端应用

在我的应用程序中,用户将上载大量图像文件。这是一个照片托管网站。对于这种情况,我考虑直接从客户端将文件上传到AmazonS3。这安全吗?我担心安全问题。我是否应该简单地将文件上传到我的服务器,然后将其发送到s3?

您肯定应该通过自己的服务器进行上传,这样您就可以控制谁可以上传什么。许多web应用程序都有简化这一过程的模块。
永远不要接受用户的输入(更不用说上传了),因为他们看起来是。。。您需要能够进行健全性检查,并且对于任何类型的二进制软件(可能是恶意软件)也需要进行检查。

最佳做法是允许客户端应用程序直接上传到S3

允许直接上传到s3可以实现大规模并发并降低基础设施成本。例如,一些基础设施提供商Heroku不允许连接持续超过30秒。这种限制会使托管图像变得更加困难


S3允许通过一个名为。您的后端仍然负责对用户进行身份验证;然后,它生成一个唯一的URL,客户端应用程序可以使用该URL直接上传。

您可以使用aws cognito对用户进行身份验证和授权。然后,从客户端使用amplify或aws sdk,您可以直接登录并将文件上载到s3

事实并非如此。S3有一个特性,可以为这个用例创建所谓的预签名URL。