管理存储在github上的开放源代码rails 3应用程序的安全性
新手入门,开源并且很快就可以部署到生产环境,我有一些安全考虑。
如何处理database.yml覆盖相当不错,how-to-manage-rails-database-yml
但是从我的角度来看,正常的Rails应用程序中有更多的配置设置不应该托管在公共github存储库中并部署到生产环境中,例如
将config / **** / *添加到.gitignore不仅会阻止新开发者捆绑安装,db:create,db:migrate,rails服务器,而且还会使生产配置保持最新,如果使用初始化器的新gem是安装。
另一种可能性是在敏感配置文件中添加一个environment.yml ,比如database.yml,其中初始值设定项中的敏感配置将被覆盖。
这样可以在清理完成后轻松启动和运行,并且生产环境易于维护。
任何想法如何解决我上面的问题?
我通常会将“安全”数据放在这些文件中,这通常用于开发目的。 但在制作中,我使用capistrano将文件符号链接到另一个位置,如下所示:
invoke_command "ln -sf #{shared_path}/database.yml #{release_path}/config/database.yml"
所以在生产服务器上,我有一堆覆盖源代码控制中文件的文件。 我甚至没有使用database.yml.example
,只是开发人员同意在开发和测试中使用的一些理智的默认database.yml
。
对于个人设置,比如API密钥,我通常会创建一个config/settings.yml
并从初始化程序中读取它们:
SETTINGS = YAML.load(IO.read(Rails.root.join("config", "settings.yml")))
YourApp::Application.config.secret_token = SETTINGS["secret_token"]
链接地址: http://www.djcxy.com/p/81097.html
上一篇: Managing security for an open source rails 3 application stored at github