我在Rails應用程序中有許多'system'密碼,例如數據庫密碼和XML feed的單獨HTTP認證密碼。將系統密碼存儲在Rails目錄樹中的位置?
我的問題是確切知道如何將這些密碼存儲在我的目錄中,以便它們儘可能安全。你對Rails 3有什麼特別的建議?
我在Rails應用程序中有許多'system'密碼,例如數據庫密碼和XML feed的單獨HTTP認證密碼。將系統密碼存儲在Rails目錄樹中的位置?
我的問題是確切知道如何將這些密碼存儲在我的目錄中,以便它們儘可能安全。你對Rails 3有什麼特別的建議?
在數據庫中加密?
在環境配置?
我以前都用過。現實情況是,HTTP密碼更像是一個API密鑰。該服務的提供者有責任,您不能通過訪問進行任何「惡意」行爲。一般來說,建議不要將任何東西放在源代碼管理中,而不想公開。在過去,我不得不在我的應用程序外部署單獨的密鑰文件。如果你正在做安全的東西(一張信用卡),那麼你可以做到這一點。只需在可訪問密鑰文件的服務器上創建一個用戶即可。然後,您實際上將對Unix的訪問權限用作您的安全模型,而不是您的密鑰文件的密碼。
只要確保將您的配置文件存儲在配置文件夾(或至少在公用文件夾之外;)。除此之外,您應該保護從外部訪問您的rails-app-user-account(強制ssh-pubkey認證)。
另一個安全缺陷是使用合理的密碼信息(例如數據庫訪問)檢入config-files。我總是將config/database.yml添加到.gitignore中,並將缺省config/database.sample.yml作爲其他開發人員的模板。 「real」config/database.yml是使用特定於環境的配置值手動創建和配置的。