Amazon web services 向第三方服务发出获取令牌的请求是一种不好的做法吗?

Amazon web services 向第三方服务发出获取令牌的请求是一种不好的做法吗?,amazon-web-services,amazon-s3,xmlhttprequest,token,signing,Amazon Web Services,Amazon S3,Xmlhttprequest,Token,Signing,假设这种情况: 我正在构建一个服务,它可以帮助用户上传到我的AWS S3帐户。 每个使用我的服务的网站必须有上传表单,直接上传到S3。为了做到这一点,每个网站都必须用AWS签名版本4签署其上传表单。 问题是签名需要AWSAccessKeyId和AWSSecretAccessKey,我必须将它们共享给我的服务用户,这是不可接受的。 我想我可以在我这边生成所有需要的签名数据,当用户(站点)要求时,我可以用这些数据进行回复 所以问题是:为了签署上传表单站点(将文件上传到我的S3)必须向我的服务器请求签

假设这种情况: 我正在构建一个服务,它可以帮助用户上传到我的AWS S3帐户。 每个使用我的服务的网站必须有上传表单,直接上传到S3。为了做到这一点,每个网站都必须用AWS签名版本4签署其上传表单。 问题是签名需要AWSAccessKeyId和AWSSecretAccessKey,我必须将它们共享给我的服务用户,这是不可接受的。 我想我可以在我这边生成所有需要的签名数据,当用户(站点)要求时,我可以用这些数据进行回复


所以问题是:为了签署上传表单站点(将文件上传到我的S3)必须向我的服务器请求签署数据(XHR或服务器端)?我不完全确定你在问什么,但是,如果你问自己代表各个网站在上传文件上签名是否是个坏主意,答案是否定的,并提出警告

对上传进行签名(实际上,您应该只对上传URL进行签名)比向其他域提供您的访问密钥安全风险要小得多。这就是它的目的,允许匿名上传。对请求进行签名只会授予站点/用户上传权限,而不会考虑谁正在上传或他们正在上传什么

这是你自己需要进行安全检查的地方。如果表单托管在多个域上(全部上载到S3 bucket),则应首先检查表单的源域,以避免有人将表单放在自己的Web服务器上并试图上载内容。根据不同站点的配置方式,有几种方法可以做到这一点,不幸的是,我不是这方面的专家

其次,您需要验证正在上载的数据。它是纯文本、二进制等吗。?您需要在启动上载之前验证所有这些

我希望这有帮助