我有一个在nodejs 上运行的javascript 应用程序。它读取标准输入以获取用户名和密码来访问某些在线服务。
这些凭据在应用程序运行的整个过程中 (24/7) 保留在变量中,以防需要重新登录。
有权访问服务器的人是否可以像在浏览器中一样“调试”应用程序并获取这些变量?或任何其他方式。
我对 Node 的内部工作原理仍然知之甚少。
编辑: 该应用程序正在 Docker 容器上运行!
最佳答案
这取决于服务器。如果他们拥有 root 或管理员权限,他们可以通过多种方式获得访问权限,包括直接从 RAM 中读取它们。如果它们位于标准帐户上,只要它们不在与您的应用程序相同的帐户上运行,您可能会更安全。这始终是一种可能性,但您可以通过使用单独的帐户、限制操作系统用户对计算机的访问以及至少加密您的凭据来最大程度地降低风险。还要确保设置权限,以便他们无法写入或读取应用程序代码,如果他们不应该执行它,也可以阻止它。至于调试 Node,据我了解,您必须在 Debug模式下显式运行它。但肯定还有其他方法,因此最好限制访问,尤其是对服务器的物理访问,并使用加密。如果您可以以加密形式卸载这些凭据并清除保存它们的任何变量,那就更好了。
关于javascript - 保护 Node js 运行时或禁用调试/检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46994584/