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

新手入门,开源并且很快就可以部署到生产环境,我有一些安全考虑。

如何处理database.yml覆盖相当不错,how-to-manage-rails-database-yml

但是从我的角度来看,正常的Rails应用程序中有更多的配置设置不应该托管在公共github存储库中并部署到生产环境中,例如

  • devise.rb - > config.pepper
  • secret_token.rb - > Application.config.secret_token
  • capistrano - > deploy.rb
  • ...
  • 将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

    下一篇: Clone WebCam stream in mediastreamer2