我正在制作一个Rails应用程序,并试图理解安全性,因为它涉及密钥。
我的项目使用Rails 5和Devise gem。
我在几个地方读过你不想出于安全原因把它们放在github上这些文件就像secretts.yml一样(我发现了几个提交)。但是,我在生产中使用的密钥是环境变量(虽然我的开发和密钥不是,但可以看到它们。)
我现在想弄清楚的是,就像secretts.yml(我也听过一些关于database.yml的东西)这样的文件就好了,只要重要的一点就在github上了(像密钥一样)是环境变量,幸运的是Rails似乎默认了吗?或者我应该努力删除这些文件吗?
答案 0 :(得分:0)
"我现在想弄清楚的是,就像secretts.yml这样的文件很好(我也听过一些关于database.yml的东西),最终在github上,#34 ;
永远不要将个人/敏感信息提交给您的Github回购..
文件名是什么并不重要;如果它有敏感信息,请不要将其推送到您的远程仓库。
答案 1 :(得分:0)
如果删除敏感信息(通过将其替换为环境变量),则可以提交该文件。它不只是secrets.yml
。任何加密密钥,API密钥,凭证都不应提交给Git。
如果您已经将此信息推送到Git,可以通过执行Rebase删除它,但这并不能保证每个副本都被删除。改变秘密会更好。
这意味着使用环境变量,在环境中设置现有值,然后在某个点生成秘密的新值并更改环境变量。
更改密钥会使任何现有用户会话无效,因此最好提前通知用户,并在最少用户使用该网站的时间内进行。
在更改密码之前,您的网站容易受到攻击。