rem*_*nny 2 ruby security rubygems ruby-on-rails sinatra
我正在使用Sinatra开发Twilio应用程序.由于我没有太多使用Ruby的经验(但我很兴奋地学习),我在将凭据与文件分离时遇到了问题.我想将文件上传到存储库,但我希望将敏感凭据保存在可导入的单独文件中.
该文件目前由以下部分组成:
require 'rubygems'
require 'twilio-ruby'
account_sid = "xxxxxx"
auth_token = "xxxxx"
client = Twilio::REST::Client.new account_sid, auth_token
from = "+12341231234"
friends = {
"+1231231234" => "Lenny"
}
friends.each do |key, value|
client.account.sms.messages.create(
:from => from,
:to => key,
:body => "Hey #{value}, Monkey party at 6PM. Bring Bananas!"
)
puts "Sent message to.#{value}"
end
Run Code Online (Sandbox Code Playgroud)
如何正确加载account_sid和auth_token行到单独的文件?存储此类凭据的最佳做法是什么?
两种常见做法是:
1)将变量存储为系统中的环境变量并使用它们进行访问 ENV
account_sid = ENV["TWILIO_ACCOUNT_SID"]
auth_token = ENV["TWILIO_AUTH_TOKEN"]
client = Twilio::REST::Client.new account_sid, auth_token
Run Code Online (Sandbox Code Playgroud)
2)另一种方法是将它们存储在服务器上的YAML文件中,然后在部署应用程序时,将此文件符号链接到存储库中的文件.这个文件应该在你的文件中.gitgnore
#config.yml
twilio:
account_sid: "xxxxx"
auth_token: "xxxxx"
Run Code Online (Sandbox Code Playgroud)
然后在你的申请中
require 'yaml'
config = YAML.load_file("config.yml")
account_sid = config[:twilio][:account_sid]
auth_token = config[:twilio][:auth_token]
Run Code Online (Sandbox Code Playgroud)
还有一些用于配置管理的宝石,我个人使用的唯一一个是figaro,但它是特定于rails的.
| 归档时间: |
|
| 查看次数: |
557 次 |
| 最近记录: |