我正在开发基于Express框架的Node.js应用程序。在后端,我需要让服务器相互通信(即服务器1发出服务器2的请求)。
可以放弃DNS A-Record并只使用服务器的IP地址吗?
在这种情况下,我如何验证服务器和“客户端”(也称为服务器)。我在考虑要求服务器和“客户端”分别通过他们的请求和响应传递安全cookie。在采取任何其他行动之前,将验证安全cookie。
答案 0 :(得分:1)
使用IP可能比DNS更安全(例如,没有DNS欺骗),但它仍然允许ARP欺骗,例如其他一些计算机声称拥有此IP。如果两台计算机不在同一网络中,也有办法在路由器等中劫持请求。
安全cookie不是共享秘密。与基于公钥的身份验证(例如,使用证书)相反,共享密钥的缺点是您需要以安全的方式分发它们,以便其他人无法访问它们。
我认为你的想法比带有证书的SSL更容易处理,所以我看不出制作自己的安全协议的优势。历史告诉我们,这些本土协议主要提供比已建立的解决方案更差的安全性。
答案 1 :(得分:0)
如果您不关心安全问题(这些主机位于您所信任的网络上),请不要担心自制饼干。
如果你关心安全性获取(或生成自己的)证书并使用SSL。
答案 2 :(得分:0)
我在考虑要求服务器和“客户端”分别通过他们的请求和响应传递安全cookie。在采取任何其他行动之前,将验证安全cookie。
这根本不安全!位于客户端和服务器之间的适当网络上的任何人都可以看到“安全cookie”以及任何后续通信。这将允许他们自己重用该cookie来模拟客户端或服务器,并暴露在交换中发送的任何敏感信息。
使用SSL。它已经解决了所有这些问题,等等。