如何在我的脚本中保护纯文本密码?(红宝石)

Rad*_*dek 5 ruby passwords password-protection

在我的ruby脚本中,我需要传递用户名和

  • 密码作为表单中的纯文本以便登录.用户名和密码当前都存储在我的脚本中.

  • 无法控制从脚本登录的服务器.脚本是localy工作正常,将来我想移动到我的

  • webhosting提供者并从那里运行它(我有ssh访问权限)

  • 使用cron.有什么办法/方法怎么样

  • 如果有人有机会访问这个脚本,保护密码

Way*_*rad 1

我越想这个,我就越认为你必须信任你的托管服务。我会确保托管服务“利益攸关”:也就是说,他们托管足够多的“高调”帐户,如果发现这些帐户不值得信任,他们将付出高昂的代价(失去帐户和销售)。

无论您认为托管服务是否值得信赖,您都应该制定计划,以防目标帐户受到威胁。您将通知谁,如何停用该帐户等。

我能想到的唯一技术解决方案——手动登录,捕获 cookie,并将该 cookie 提供给脚本——保护密码,但大概敌对主机可以使用该 cookie 对目标造成任何他想要的损害系统使用该 cookie 附加的任何权限,包括更改您的密码。所以这根本就不是解决办法。

哦,说到权限:您需要自动化的任务是否可以使用权限较低的目标帐户(例如只读帐户或无法对其配置文件进行任何更改的帐户)来完成?在托管服务上仅拥有低权限凭据会降低您的风险(或“暴露”,正如多音节人群喜欢说的那样)。

之前的答案,发现行不通,低于线。


您可以使用另一个密码来加密用户 ID 和密码。为了运行,必须向脚本提供密码。它使用该密码来解密 Web 服务的用户名和密码。确保脚本的密码不会存储在任何地方,而仅保留在内存中,并且仅保留足够长的时间来解密最终的用户 ID 和密码。

如果确实很重要,请确保运行脚本的连接是加密的(ssh、ssl 等),并确保脚本仅使用 https 登录。

这并不会让你对拥有 root 权限的人无懈可击(在某些时候,明文用户 ID 和密码将在内存中,因此容易受到攻击),但它确实使他们需要更多的工作才能能够获取用户 ID/密码。

更新:自动化的要求使得上述解决方案没有什么好处。