越接近完赛越害怕自己今天到底发文了没!这几天早中晚都会反覆确认有没有发文,毕竟坚持30天写技术文章那麽久,不得不担心功亏一篑呢 XD
今天要介绍的是很方便和常用的套件。学写程序之後才知道有很多眉角,比方说用 Git 做版本控制,然後推上 GitHub ,除了基本的版控,团体协作也很方便。但是专案中总是会有比较机密敏感的资讯,尤其是使用者名称和密码、金钥等,如果是自己在本地操作就算了,一旦推上 GitHub,很快就会被扫描到,被有心人士窃取又更麻烦了。为了安全性的问题,所以才有了 Figaro 套件。利用 gitignore,把敏感资料存成环境变数,整理成一个档案,让 Git 忽略这个档案,不加入版控之中,而环境变数可以在专案全域中取用,达到保护机密资讯的作用。
Figaro 在应用程序中解析一个忽略 Git 的 yaml 文件,并将其值加载到中ENV。
先到 RubyGem 寻找 figaro,然後回到专案 Gemfile 加入:
# Gemfile
gem 'figaro', '~> 1.2'
也别忘记:
$ bundle install
接着下这个指令会在 config 资料夹中长出一个档案application.yml
,并且加入到.gitignore
$ bundle exec figaro install
application.yml
先打开刚刚产生的档案,有给一些范例:
小提醒:ENV 是的储存方式是一个简单的 key / value。所有值都将转换为字串。深度巢状的配置结构是不可能的。
本地配置的数据会根据 Rails 的环境去改变。也就是可以设定不同环境下,给予不同的设定:
pusher_app_id: "2954"
pusher_key: "7381a978f7dd7f9a1117"
pusher_secret: "abdc3b896a0ffb85d373"
test:
pusher_app_id: "5112"
pusher_key: "ad69caf9a44dcac1fb28"
pusher_secret: "83ca7aa160fedaf3b350"
development:
pusher_app_id: "1234"
pusher_key: "ad69cbe8b33dcac1fc89"
pusher_secret: "94cd8bb160fedaf3b461"
production:
pusher_app_id: "9999"
pusher_key: "cd69aef9a26dcac1fb34"
pusher_secret: "98ca7aa173fedaf3b664"
补充:yaml wiki
在程序码中输入 ENV[...]
,即可得到在设定档案中配置好的密码
ENV["pusher_secret"]
把帐户、密码、连结等存在这里,用法很简单,却提升很多安全性问题喔!
今天的一切,都是为了明天的一小部分!
参考资料:
使用figaro管理密钥
使用 Carrierwave 与 Figaro套件,在Heroku 部署 Rails 专案结合 AWS S3 存放上传图片
学无止尽,每天都要进步一点点!
>>: 【Day.28】React进阶 - 导入Redux,让元件沟通更简洁
今天要进一步完成商店页面,会用到 ViewComponent 来完成类别选单 ViewCompone...
工程师太师了: 第1.5话 杂记: 因为这是IT铁人赛,总是希望可以有些技术的。 我会在D2、D4、...
攻击者针对 ICS 环境寻找有用的资讯,这些资讯包含 ICS 网路内 IP 、Hostname,可以...
「鲑鱼均,因为一场鲑鱼之乱被主管称为鲑鱼世代,广义来说以年龄和脸蛋分类的话这应该算是一种 KNN 的...
永远的新手模式 「形成ing」的基本概念 科技生活是一连串的升级, 不论一种工具用了多久,无尽的升级...