Javascript 在哪里存储感知数据?

Javascript 在哪里存储感知数据?,javascript,node.js,encryption,Javascript,Node.js,Encryption,我有两个NodeJS应用程序,它们交换一些数据。数据通过AES加密。 目前,AES密钥是在客户端和服务器的javascript代码中硬编码的 问题是:什么是最佳实践?我在客户机/服务器上的何处存储密钥?这两个应用程序都是100%的控制台应用程序。(无用户/浏览器交互) 更新:我使用了客户机/服务器这一术语。因为-对于我和关于应用程序。逻辑是一种服务器/客户机关系。但是应用程序。在两个独立的AWS服务器实例上运行。我甚至可以在这两个实例之间设置IP限制。因此,除了AWS RDP帐户之外,任何人都不

我有两个NodeJS应用程序,它们交换一些数据。数据通过AES加密。 目前,AES密钥是在客户端和服务器的javascript代码中硬编码的

问题是:什么是最佳实践?我在客户机/服务器上的何处存储密钥?这两个应用程序都是100%的控制台应用程序。(无用户/浏览器交互)

更新:我使用了客户机/服务器这一术语。因为-对于我和关于应用程序。逻辑是一种服务器/客户机关系。但是应用程序。在两个独立的AWS服务器实例上运行。我甚至可以在这两个实例之间设置IP限制。因此,除了AWS RDP帐户之外,任何人都不应该访问实例,并且通过端口,这两个实例通过


它们通过web套接字连接交换数据,有时还访问在第三个实例上运行的HTTP API。。。这就是所有的……它是足够安全的钥匙硬编码或我应该放在哪里?< /P> < P>你应该有一个随机密钥,而不是修复一个,因为如果有人抓住它,那么他们可以使用中间人攻击。< /P> 尝试在服务器上生成密钥并将其发送到客户端。在客户机上,您可以将其存储在某个位置(最好是在一个作用域中),当您需要读或写消息时,您可以简单地使用它

此外,您应该为每个客户端使用不同的密钥,如果可能,您应该定期更改密钥


如果您知道如何将其转换回来,即使使用模糊器(您几乎总是可以去模糊),那么一切都是非常开放的源代码。拥有硬编码密钥与根本没有密钥一样有用。

公钥和私钥。为客户端提供公钥。在服务器上,只有管理员可以访问私钥。那你就准备好了。如果你知道目标操作系统,你可以试着在密钥库中设置它。如果有任何rootkit风险(总是存在),那么首先要尽力阻止它。然后,您可以添加一个密码短语,并在启动时使用readline读取它。如果无法阻止将所有敏感信息存储在文件中,请确保用户只能读取这些信息。让他们远离应用程序目录。