首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管理存储在github上的开源rails 3应用程序的安全性

管理存储在github上的开源rails 3应用程序的安全性
EN

Stack Overflow用户
提问于 2010-12-10 19:12:23
回答 1查看 1.3K关注 0票数 7

对于rails来说,我是新的,开源的,很快就可以部署到生产环境中了,我有一些安全考虑。

如何处理database.yml已经很好了,how-to-manage-rails-database-yml

但是从我的观点来看,在普通的rails应用程序中有更多的配置设置不应该托管在公共github存储库中并部署到生产中。

config.pepper

  • secret_token.rb Application.config.secret_token

  • capistrano deploy.rb

  • ...

  • devise.rb ->

向.gitignore添加config /*/*不仅可以防止新开发人员捆绑安装、db:create、db:migrate、rails服务器,而且如果安装了带有初始化器的新gem,还可以保持生产配置的最新更新。

另一种可能是添加一个具有敏感配置的environment.yml,比如database.yml,其中初始化器中的敏感配置将被覆盖?

这将使您在完成一个干净的结帐后能够很容易地起床和运行,并且生产环境也会很容易维护。

有什么办法解决我上面的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-10 19:23:24

我通常将“安全”数据放在这些文件中,这些文件通常用于开发目的。但是在生产过程中,我将文件与capistrano的其他位置进行符号链接,如下所示:

代码语言:javascript
复制
invoke_command "ln -sf #{shared_path}/database.yml #{release_path}/config/database.yml"

因此,在生产服务器中,我有一堆文件覆盖源代码管理中的文件。我甚至不使用database.yml.example,只是开发人员同意在开发和测试中使用的一些正常的默认database.yml

对于单个设置,比如API键,我通常创建一个config/settings.yml并从初始化器内部读取它们:

代码语言:javascript
复制
SETTINGS = YAML.load(IO.read(Rails.root.join("config", "settings.yml")))
YourApp::Application.config.secret_token = SETTINGS["secret_token"]
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4412406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档