jef*_*unt 10 security ruby-on-rails actionmailer
我是疯了,还是在实际(开发/生产)配置文件中保留ActionMailer的SMTP用户名和密码是个坏主意?似乎我应该将它存储在加密的地方,或者至少将它从我的Mercurial推送中排除.
现在,我只是在执行推送之前从源文件中删除密码,但是必须比我正在使用的方式更聪明.:)
也许我应该将它作为另一个用户(已经存储有加密密码)存储在我的数据库中并以编程方式获取它?
Jim*_*dra 12
使用未存储在存储库中的应用程序配置文件来存储敏感信息.我是这样做的:
app_config.yml
在您的config
目录中添加一个.其内容如下所示:
smtp_password: kl240jvfslkr32rKgjlk
some_other_password: 34hg9r0j0g402jg
and_so_on: lkn$@gJkjgsFLK4gaj
Run Code Online (Sandbox Code Playgroud)使用以下内容preinitializer.rb
在config
目录中添加:
require 'yaml'
APP_CONFIG = YAML.load(File.read(RAILS_ROOT + "/config/app_config.yml"))
Run Code Online (Sandbox Code Playgroud)用密码替换APP_CONFIG
变量中的值,如下所示:
smtp_password = kl240jvfslkr32rKgjlk # old version
smtp_password = APP_CONFIG['smtp_password'] # new version
Run Code Online (Sandbox Code Playgroud)确保您没有包含app_config.yml
在您的存储库中,尽管您可能想要创建一个已签入的示例文件,只是为了显示其中应包含的内容的示例.部署应用程序时,请确保它app_config.yml
存储在服务器上.如果您正在使用标准的Capistrano部署,请将该文件放在共享文件夹中并更新部署任务,以在当前版本的目录中为其创建符号链接.
归档时间: |
|
查看次数: |
1081 次 |
最近记录: |