用于在单独的服务器中验证文件上传的共享密钥
Shared key for authenticating file uploads in a separate server
在我当前的项目中,我需要能够上传图像并将它们保存在像 S3 这样的商店中,并在保存图像之前执行一些操作(调整大小等)。我仍在掌握如何完成此操作。
我正在考虑创建一个单独的服务器来进行此图像处理和上传以降低我的主应用程序服务器上的负载,我不知道我是否应该这样做或者我应该但我正在解决一个想象中的可扩展性问题。
无论如何,我需要一种方法来限制上传到图像服务器。我在想,因为我不需要分发密钥来在应用程序和图像服务器之间创建共享秘密。这个秘密将用于创建令牌,这些令牌将提供给客户端以在有限的时间内上传图像。
如果我在图像服务器中的端点接收到用于验证和创建上传令牌的共享密钥,是否足够安全?
让两台服务器都通过 https 是否足以确保无法窃取中间人攻击的秘密?
我可能对安全性和密码学有一些误解,但如果有人能帮助我或为我提供一些对这种情况有益的读物,我会非常高兴。
谢谢!
据我了解,您希望允许用户将图片上传到您的网站,并且上传后您希望以某种方式对其进行处理(调整大小等)。如果这是正确的,这是我建议的工作流程。
让您的主应用程序服务器为 S3 上传创建预签名 URL。将此预签名 URL 发送给客户端。客户端将能够上传到 S3。上传完成后,使用 worker 在后台进行处理(从 S3-process-upload 获取)。
这样,您就可以避免处理上传令牌。 S3 还支持对预签名 URL.
的时间限制
I was thinking of creating a separate server to make this image processing and uploads to lower the load on my main application server, I don't know if I should do this or maybe I should but I'm just solving an imaginary scalability problem.
在这种情况下分离逻辑是有意义的。我不会创建一个新的服务器,只是一个图像处理的后台进程。如果您需要扩展,您可以随时启动多个这样的后台进程。
If my endpoint in the image server receives the shared secret for authenticating and creating the upload token is it sufficient for security?
按照我上面的建议,使用 S3 接收图片上传。客户端直接上传到S3,它会为你处理安全问题。
Is it enough to have both servers over https to ensure there is no way to steal the secret in a man in the middle attack?
HTTPS 提供的机密性足以防止中间人嗅探您的流量。使用 AWS 的预签名 URLs,您也不会发送秘密,而是发送所谓的签名。这是一个 intro to the topic and Amazon's own documentation 以获取更多信息。
在我当前的项目中,我需要能够上传图像并将它们保存在像 S3 这样的商店中,并在保存图像之前执行一些操作(调整大小等)。我仍在掌握如何完成此操作。
我正在考虑创建一个单独的服务器来进行此图像处理和上传以降低我的主应用程序服务器上的负载,我不知道我是否应该这样做或者我应该但我正在解决一个想象中的可扩展性问题。
无论如何,我需要一种方法来限制上传到图像服务器。我在想,因为我不需要分发密钥来在应用程序和图像服务器之间创建共享秘密。这个秘密将用于创建令牌,这些令牌将提供给客户端以在有限的时间内上传图像。
如果我在图像服务器中的端点接收到用于验证和创建上传令牌的共享密钥,是否足够安全?
让两台服务器都通过 https 是否足以确保无法窃取中间人攻击的秘密?
我可能对安全性和密码学有一些误解,但如果有人能帮助我或为我提供一些对这种情况有益的读物,我会非常高兴。
谢谢!
据我了解,您希望允许用户将图片上传到您的网站,并且上传后您希望以某种方式对其进行处理(调整大小等)。如果这是正确的,这是我建议的工作流程。
让您的主应用程序服务器为 S3 上传创建预签名 URL。将此预签名 URL 发送给客户端。客户端将能够上传到 S3。上传完成后,使用 worker 在后台进行处理(从 S3-process-upload 获取)。
这样,您就可以避免处理上传令牌。 S3 还支持对预签名 URL.
的时间限制I was thinking of creating a separate server to make this image processing and uploads to lower the load on my main application server, I don't know if I should do this or maybe I should but I'm just solving an imaginary scalability problem.
在这种情况下分离逻辑是有意义的。我不会创建一个新的服务器,只是一个图像处理的后台进程。如果您需要扩展,您可以随时启动多个这样的后台进程。
If my endpoint in the image server receives the shared secret for authenticating and creating the upload token is it sufficient for security?
按照我上面的建议,使用 S3 接收图片上传。客户端直接上传到S3,它会为你处理安全问题。
Is it enough to have both servers over https to ensure there is no way to steal the secret in a man in the middle attack?
HTTPS 提供的机密性足以防止中间人嗅探您的流量。使用 AWS 的预签名 URLs,您也不会发送秘密,而是发送所谓的签名。这是一个 intro to the topic and Amazon's own documentation 以获取更多信息。