抽出 RoR 設定檔以增進安全性

目前比較有在動的 project 都是在 private network 裡跑的,使用者也不多,所以一直沒特別注意安全性的問題,真是不太好的習慣啊!趁著這次 OpenSSL bug 的機會,研究一下 Ruby on Rails App 的安全性設定。

secret_token.rb

secret token 基本上不能暴露出來,也不能重複,如果是 clone 別人的 project,也要記得改個新的。因此,不要讓 secret_token.rb 進到 repository 裡(加入 .gitignore),然後把既有的 app 打一把新的 token:

database.yml

database.yml 存了後端資料庫的一些連線設定,當然也不能讓外人知道。雖然我都用 SQLite 檔來存,基本上沒什麼連線設定的問題,但為了以後可能改用其他 db,也趁機處理一下。

一樣放到 .gitignore 裡不要進 repository。

如果用 capistrano 來 deploy 的話,可在 deploy.rbnamespace :deploy 中進行 database.yml symlink:

在 callback 部分加入

接著把 secret_token.rbdatabase.yml 放到 production server 上的 #{shared_path}/config 目錄中。

以上。收工。


Leave a Reply