1

我有几个问题试图决定什么是我想要构建的东西的最佳解决方案。如何验证服务器到服务器通信

在应用程序最简单的形式中,我有一个前端服务器,允许用户上传与其账户相关联的文件,例如视频或图像。上传文件表单将上传请求发送到前端服务器,后者然后使用反向代理将请求直接传递到存储服务器的API()。

我目前坚持的是试图找出验证在存储服务器API处接收到的请求实际上是从前端服务器的反向代理发送的最佳方式,而不是有人仅向存储服务器的API端点发送直接发布请求。

任何建议将非常感激!

+0

您可以从前端服务器发送某种令牌来验证请求来自正确的服务器。 –

+0

嘿@DhanushGopinath,谢谢你的回复。我以前创建了一个创建CSRF令牌的会话,该会话在存储服务器端通过同一个客户端的会话进行验证,但是,如果在传递实际值之前创建令牌并通过tcp发送令牌会更好请求,请等待包含来自存储服务器的正确标记的ACK,并且只有在它正确的情况下,才能代理文件上载请求? –

+0

我这样做是你提到的第一种方式。而且我编写了一个HTTP处理程序来验证它,只有当它有效时,才会将请求传递给实际处理程序。第二种方法也应该没问题,除了每次调用每次都需要发送2个请求。 –

回答

0

有多种方式做到这一点:

  1. 你可以使用一个API网关(例如APIGEE,AWS AI网关等)。网关可以请求源验证。
  2. 你可以让前端应用程序来使用OAuth(用于存储服务器),并使用 ,要获得认证/授权在存储服务器
  3. 你可以做服务器&允许受限制的IP地址的源
  4. 之间的IP白名单
  5. 您可以使用质量%(相互Authenthicated SSL)的b/W服务器,以确保只有被验证访问您的API客户端(可能是你的问题直接不但可以组合使用)

这些都是简单的选项,如果你不需要一个复杂或更昂贵的解决方案。

+0

嘿@Virgo,感谢您的评论!由于存储服务器正在通过表单发送数据,因此我已经在会话中实施了CSRF预防功能,但我之前已考虑过使用IP白名单的想法,所以我可能也会这样做!伟大的建议,非常感谢! –