Rails - 生产服务器密码的安全最佳实践?

时间:2014-03-20 15:01:01

标签: ruby-on-rails git security passwords

我应该将生产服务器数据库密码检入git吗?这里的最佳做法是什么?我应该使这个密码不同于root linux密码吗?从操作系统/密码的角度来看,还有其他任何安全最佳实践吗?

1 个答案:

答案 0 :(得分:1)

无论是使用github还是自己的git服务器,都不应该将生产密码存储在git中。这只是另一个潜在的失败/脆弱点。如果你已经这样做了,你应该删除包含它们的文件(也来自历史记录) - 有很多SO问题如何做到这一点。如果您已将这些文件推送到远程服务器,则应更改密码。

至于最佳做法,您可以使用dotenv gem(https://github.com/bkeepers/dotenv) 通过这种方式,您可以在单个文件.env.production中提取rails环境变量中生产的所有敏感数据。此文件应仅存在于生产服务器上,并且应该添加到您的git ignore文件中以确保。

Dotenv允许您在名为.env。[development | production | test | whatever]的文件中为每个环境设置变量。您可以推送非敏感文件/数据进行开发,测试等,但忽略重要文件/数据。您可以使用ENV['MY_ENV_VARIABLE']访问这些变量。 (在每个.env文件中,您将有一行MY_ENV_VARIABLE="some super secret password"

这种方法的一个缺点是,每次向服务器上的应用添加新的敏感数据/字段时,都必须确保编辑.env.production文件。