【发布时间】:2013-06-08 23:51:24
【问题描述】:
In this question,Mubashar 询问有关使用 C# 在内存中安全存储敏感信息的问题,并指向 .NET 中的 SecureString 类。是否有现有的类似工具可以在 node.js 中执行此操作?否则,使用可用节点资源执行此操作的方法是什么?
【问题讨论】:
In this question,Mubashar 询问有关使用 C# 在内存中安全存储敏感信息的问题,并指向 .NET 中的 SecureString 类。是否有现有的类似工具可以在 node.js 中执行此操作?否则,使用可用节点资源执行此操作的方法是什么?
【问题讨论】:
这些不是您要寻找的机器人。
(因为无法删除已接受的答案)
【讨论】:
password 变量中,因此在内存中,不安全。
console.log 时,它都会出现在堆转储中。闭包或任何形式的混淆都不会改变任何事情
唯一的方法是使用像Uint8Array 这样的类型化数组(Buffer 类只是一个薄包装器)并在使用后用null 或任何其他值填充它。
但有一些事情需要考虑:
例如,当您获得凭据时,您很可能会以 JSON 格式获得它们。在这种情况下,当您不拦截时,任何努力都是徒劳的,因此请求正文不会像任何网络框架那样存储在字符串中。
当您从文本文件中读取 API 密钥时,应该很明显为什么内存安全可能不是最大的问题。为此,应该考虑使用密钥库。
但即便如此,您也不能真正确定没有泄漏。例如,我怀疑node.js streams 自己清理后。即使您手动覆盖它们,复制或系统 API 也可能存在泄漏。即使是密码管理员也有泄露密码的问题。
总结一下:即使您考虑了所有问题,也很可能会出现您无法防止的泄漏。
【讨论】: