在Ruby中存储密码的最佳实践。 Xml,源码还是其他?

时间:2017-10-31 22:31:35

标签: ruby xml passwords base64

我有一个发送电子邮件的Ruby脚本,但我需要存储smtp帐户凭据才能发送电子邮件。目前,我有一个我正在存储密码的xml文件,但是我在xml中使用Bas64对密码进行编码,然后在我的脚本中进行解码。我也将脚本打包成.exe。

我正在试图找出存储凭据方面的最佳做法。我应该将密码存储在实际脚本而不是xml中吗?我应该使用其他方法吗?该脚本不会在局域网外部暴露的服务器上运行,但我仍然希望确保密码尽可能安全。

1 个答案:

答案 0 :(得分:1)

Base64不加密,任何人都可以撤消它。就此而言,如果您的程序包含密钥并且本身可读,则使用实际加密将无济于事。如果您需要编写使用密码的程序,但不希望程序用户可以访问该密码,则需要使用操作系统和代码。

  1. 将密码放入代码中的单独文件中。
  2. 使用操作系统的文件访问控制来确保只有被允许的人才能使用密码读取文件。这与可以运行程序的人员列表不同,可能只是管理员。
  3. 将伪用户添加到脚本的操作系统中。这不是一个真实的人,而是一个只有程序才会运行的帐户。将此用户添加到具有密码的文件的访问控制,以便它可以读取该文件。确保此用户无法以交互方式登录,例如获取shell提示符或获取桌面会话。
  4. 启用您要运行程序的人员以“as”作为脚本的伪用户运行程序。在Windows中,这可以使用“runas”命令完成。在Linux上,您可以使用“sudo”。