了解安全和秘密密钥

Understanding Security and Secret Keys

我正在制作一个 Rails 应用程序并试图了解安全性,因为它涉及密钥。

我的项目使用 Rails 5 和 Devise gem。

我在几个地方读到,出于安全原因,您不想将 secrets.yml 之类的文件放到 github 上(我在路上发现了几次提交)。不过我生产用的秘钥是环境变量(虽然我的开发和秘钥不是,但是可以看到)

我现在想弄清楚的是,像 secrets.yml 这样的文件(我也听说过一些关于 database.yml 的事情)是否可以在 [=22] 上结束? =],只要重要的位(比如秘钥)都是环境变量,还好Rails好像默认都想到了?还是我应该完成删除这些文件的工作?

"What I am trying to figure out now, is that is it fine that files like secrets.yml (I also heard some things about database.yml as well), have ended up on github,"

切勿将 personal/sensitive 信息提交到您的 Github 存储库..

文件名是什么并不重要;如果它有敏感信息,请不要将其推送到您的远程仓库。

如果您删除了敏感信息(通过用环境变量替换它),那么您可以提交该文件。不只是 secrets.yml。不应将任何加密密钥、API 密钥、凭据提交给 Git。

如果您已经将此信息推送到 Git,可以通过执行 Rebase 将其删除,但这并不能保证删除每个副本。还是改个secret比较好

这意味着使用环境变量,设置环境中的现有值,然后在某个时刻为机密生成新值并更改环境变量。

更改密码会使任何现有的用户会话失效,因此最好提前通知用户,并在使用该网站的用户最少的时间进行。

除非您更改秘密值,否则您的网站容易受到攻击。