将数据从服务器发送到浏览器到另一台服务器

Posted

技术标签:

【中文标题】将数据从服务器发送到浏览器到另一台服务器【英文标题】:send data from a server to browser to another server 【发布时间】:2021-10-22 12:04:54 【问题描述】:

我有 2 台服务器,让我们将它们命名为 serverAserverFirebase

serverA 无法访问 Internet,只能在本地网络中访问,并且它托管一个 .net 应用程序

serverFirebase 是 google firebase 服务器

我需要从serverAserverFirebase 发送请求,但我不能,因为serverA 无法访问互联网

我想到的解决方案是,由于浏览器(显示来自serverA 的网络应用程序)可以访问互联网,我可以使用他的浏览器代理我的请求

应该是这样的

serverA -> 浏览器 -> serverFirebase

现在我想这样做的方式是这样的:

1 - 创建一个 rsa 密钥对,私钥在 serverA,公钥在 serverFirebase

2 - 在serverA 中创建请求负载的 sha256 哈希并填充它并使用私钥对其进行签名(请注意,请求负载具有只能使用一次的订单号)

3 - 将有效负载和签名的哈希发送到浏览器

4 - 将负载和签名哈希从 borwser 发送到 serverFirebase

5 - 在serverFirebase 中使用公钥解密签名的哈希并将其与有效负载的哈希进行比较,并检查之前没有使用过订单号

我的问题是这种方法是否足够安全?以及是否已经有任何协议可以处理这种情况。

谢谢

【问题讨论】:

【参考方案1】:

我认为这取决于您的威胁模型、您期望攻击者是谁以及您对环境的假设。

在不让这太复杂的情况下,想到的一种攻击途径是浏览器和serverFirebase 之间的中间人。攻击者可能只是读取您在serverA 上生成的消息并将其存储。由于他可以阅读您的消息(您只是对摘要进行签名,而负载本身未加密),因此他知道他们在说什么,并按照他想要的顺序,随时随地发送他想要的消息。

例如,如果您的第一条消息是buy 200 shares of Penny Stock,而您的下一条消息是sell 100 shares of Penny Stock。攻击者可能只能转发第一条消息,而不能转发第二条消息。

【讨论】:

感谢您的回答,消息的顺序并不重要,消息的有效负载是 Firebase 云通知请求,即使请求没有被发送,结果也不会那么激烈跨度>

以上是关于将数据从服务器发送到浏览器到另一台服务器的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中将推送通知从一台设备发送到另一台设备

ReverseProxy - 将一些 URL 发送到另一台服务器进行预处理

重定向到另一台服务器而不更改我当前的 Url

如何制作一个侦听消息并将它们发送到另一台服务器的机器人?

如何将推送通知从一台 iPhone 设备发送到另一台设备? [关闭]

如何将数据从 Web 服务中的一种方法发送到另一种方法