Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 包括我的开发和测试是否符合犹太教;“秘密”;在版本控制中?_Ruby On Rails_Security_Heroku_Ruby On Rails 4_Credentials - Fatal编程技术网

Ruby on rails 包括我的开发和测试是否符合犹太教;“秘密”;在版本控制中?

Ruby on rails 包括我的开发和测试是否符合犹太教;“秘密”;在版本控制中?,ruby-on-rails,security,heroku,ruby-on-rails-4,credentials,Ruby On Rails,Security,Heroku,Ruby On Rails 4,Credentials,Rails 4.1.0引入了一个新文件。这就是我现在正在做的事情:一般来说,对于生产环境,我使用环境变量并将它们注入到文件中,如下所示: production: secret_key_base: ENV['SECRETS_KEY_BASE'] (我使用Heroku,因此我使用环境变量进行配置,而不是secrets.yml,因为您不能将任意文件上载到Heroku服务器。) 然而,对于开发和测试环境,我发现自己在说,不管怎样;我只是在回购协议中加入了“秘密”。我认为,当我只是在做本地开发时,这

Rails 4.1.0引入了一个新文件。这就是我现在正在做的事情:一般来说,对于生产环境,我使用环境变量并将它们注入到文件中,如下所示:

production:
  secret_key_base: ENV['SECRETS_KEY_BASE']
(我使用Heroku,因此我使用环境变量进行配置,而不是secrets.yml,因为您不能将任意文件上载到Heroku服务器。)

然而,对于开发和测试环境,我发现自己在说,不管怎样;我只是在回购协议中加入了“秘密”。我认为,当我只是在做本地开发时,这些价值观是否被公开并不重要

我还把OAuth密钥/秘密等东西放在这里。例如,使用Google,我向来自的两个客户端注册了一个应用程序,一个用于生产(URL设置为我的实际域),另一个用于开发/测试(localhost:3000或其他)。同样,我倾向于只在repo for dev中包含客户机机密,但将其放在环境变量中,并将其注入生产环境

这是明智的做法吗?像这样公开开发/测试凭据是否存在我没有想到的风险?

如果你不得不问

当一个单一的、常见的、重要的密码被泄露时,就会发生安全漏洞,使攻击者能够进入秘密宝库


以每个人对待数据库.yml的方式对待您的机密文件-这是一种保存数据库密码
(如果有的话;)
的好方法…

所以您认为将开发/测试“机密”包括在内是个坏主意因为这会使您有可能错误地泄露真实的生产机密?不签入database.yml的理由是,您的同事可以在自己的工作站上使用自己的数据库进行开发,而不知道真实服务器的机密密码。所以你的秘密是一样的。(顺便说一句,如果您已经被泄露,您可以命令您的提供商注销您的密钥并生成新密钥…)