当前位置:  开发笔记 > 开发工具 > 正文

如何在不泄露应用程序的密钥和凭据的情况下打开我的Rails应用程序源代码

如何解决《如何在不泄露应用程序的密钥和凭据的情况下打开我的Rails应用程序源代码》经验,为你挑选了2个好方法。

我在GitHub上托管了许多Rails应用程序.它们目前都是私有的,我经常会从它们的GitHub存储库中部署它们.我希望能够将它们中的一些开源,就像你可以在http://opensourcerails.com上找到的那样.

我的问题是:如何在不泄露超级秘密凭证的情况下公开这些存储库?

例如,我可以查看/config/initializers/cookie_verification_secret.rb并查看几乎每一个的cookie秘密.我不明白这是怎么接受的.这些用户是否都在某种程度上在部署环境中更改这些值?

有些用户甚至暴露他们的AWS秘密和密钥!其他人会将他们的AWS秘密设置为:

ENV['aws-secret']

虽然我不确定他们在什么时候设定了这个价值.

那么,在不影响应用程序安全性的情况下,开源Rails应用程序的最佳实践是什么?



1> Robert Speic..:

我最近使用自己的一个应用程序进行了此操作.我的解决方案是将任何秘密存储在git-ignored YAML配置文件中,然后使用initializers目录中的简单类访问该文件.配置文件存储在Capistrano部署的"shared"文件夹中,并在每次部署时复制到config.

配置商店:http://github.com/tsigo/jugglf/blob/master/config/initializers/juggernaut.rb

用法示例:https://github.com/tsigo/jugglf/blob/6b91baae72fbe4b1f7efa2759bb472541546f7cf/config/initializers/session_store.rb

您可能还希望从源代码管理中删除使用这些秘密值的文件的所有历史记录.以下是我在Git中使用的指南:http://help.github.com/removing-sensitive-data/



2> crftr..:

如果您正在使用工头,请将.env文件放在应用程序的根目录中.(工头博士)

.env 会的

AWS_SECRET=xxx
AWS_ACCESS=yyy

然后当您需要使用密钥时,插入:

ENV['AWS_SECRET']
ENV['AWS_ACCESS']

虽然重要的是不要将其提交.env给版本控制.所以,如果你正在使用git,请添加.env到你的.gitignore.


奖金回合! - Heroku

如果部署到Heroku,则需要在Heroku环境中配置这些环境变量.有两种选择:

    通过heroku config:add命令手动添加密钥

    使用heroku-config gem来同步本地环境变量.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有