2011-03-06 33 views

回答

0

有幾種方法可以做到這一點。

使可用的類似的東西在全球範圍內您的應用程序最簡單的方法是將內config/environment.rb(或config/environments/production.rb定義常量。

但是,敏感數據是非常重要的,他們正在從主SCM,只有分離在生產環境中可用 - 至少這樣,如果您的代碼被泄露,您的加密密鑰是安全的。

有兩種方法可以做到這一點,我知道 - 一種方法是將它們設置在環境中變量,然後可以通過紅寶石通過ENV['variable_name]訪問。

另一種選擇是將其存儲在與代碼存儲庫分離的外部文件中,然後使用初始化程序讀入該文件。

你做哪種方式,可這種做法有一個常量聲明中config/environment.rb結合:

# config/environment.rb 
ENCRYPTION_KEY = ENV['encryption_key'] 

這樣,你應該改變你的密鑰的存儲位置,你只需要改變的一行碼。

0

您可以在config/initializers/01_secrets.rb文件中設置所有的祕密常量。以下是考慮幾件事情:

  • 01前綴,以確保 祕密常數先於其他 初始化,使利用這些 常量加載設置。

  • 01_secrets.rb文件不應該被登記到您的SCM的 。

  • 存儲該文件 的服務器必須得到妥善保護,並且文件 本身應該具有最大安全性。

例如,

# config/initilizers/01_secret.rb 
ENV['ENCRYPTION_KEY'] = "your_key" 
相關問題