从github隐藏我的敏感信息(例如密码)

时间:2011-11-18 23:37:32

标签: ruby-on-rails authentication passwords github

我只是设置了Devise(rails认证插件),在注册时发送确认电子邮件。这涉及到我将以下内容放入我的environment.rb文件中:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
   :tls => true,
   :address => "smtp.gmail.com",
   :port => 587,
   :domain => "gmail.com",
   :authentication => :login,
   :user_name => "[my email]",
   :password => "[my pass]"
 }

我显然不想把它推到github,只有坐在那里[我的通行证]。这里有标准做法吗?

3 个答案:

答案 0 :(得分:10)

标准是将您的配置设置放在一个未包含在您的仓库中的YAML文件中。

然后你只需从中获取数据。

检查Railscast“#85 YAML Configuration File”以查看它的实际效果。

答案 1 :(得分:4)

apneadiving是正确的,添加到他的解决方案,其他人下载你的代码,可能不会很快弄清楚如何生成这个yml,所以你需要给他们一个提示,具有以下结构:

config
  |
  |--- environment.rb
  |--- mail_settings.yml
  |--- main_settings.yml.example

文件'mail_settings.yml'包含您的敏感信息,不包含在repo中,并且您的repo中包含'main_settings.yml.example',并且具有与'mail_settings.yml'相同的结构。

为了更有帮助,请在README文件中提供一个部分,描述人们需要将mail_settings.yml.example文件复制到mail_settings.yml并增强其内容。

答案 2 :(得分:1)

创建包含邮件设置的配置文件,并从文件中加载它们。检查配置文件,删除所有设置。让您的应用程序检查文件是否已填写,如果不是,则显示错误并正常退出(或禁用邮件,只需确保用户知道发生了什么)。

这具有额外的优势,即用户可以轻松更改邮件设置,而无需编辑代码。一般来说,告诉用户编辑代码以设置配置是个坏主意。此外,您可以将配置保持在与代码不同的位置,以便更容易到达。