回答
通過使這些「祕密」(和其他密碼/安全/令牌相關值)的值僅在生產環境中知道,而不是在任何存儲庫被檢出的位置,這增強了安全性。如果可能的話,每個環境(例如本地開發,開發服務器,登臺/演示服務器,生產環境等)都應該有自己獨立的身份驗證或安全參數配置,這些應該在本地環境中配置,而不是存儲在應用程序的代碼本身。
即使您的存儲庫是私有的,它仍然不安全。開發人員來來去去。操作人員來去。項目管理來來去去。您可能有一些第三方承包商可以進行回購。一個足夠大的項目往往會有很多演員參與其中,隨着時間的推移,他們中的任何一個人都不需要知道生產配置值(除了民間操作人員)。即使擁有私有存儲庫,將密鑰/值公開給有回購訪問權限的任何人仍然存在安全風險。
我見過的很多事情是,人們需要開發這些密鑰中的一些,然後將祕密的一個版本複製到他們的計算機上。如果你在開發中需要這些鍵,這是否意味着你做錯了什麼? –
@MarcoPrins這取決於服務使用這些密鑰的重要性,並且需要您的經驗和專業知識才能做出判斷。在與開發人員協調並致力於創建該服務的僅限開發版本並最終遷移到單獨的每個環境配置文件時,可以快速移動新MVP項目以存儲一些不那麼關鍵的鍵。 ENV。只是不要把它作爲一個長期的計劃,將這些信息存儲在應用程序中,並且不要存儲關鍵的(財務?prod db creds?)服務認證數據。 – Todd
- 1. 保護git倉庫祕密的最佳做法是什麼?
- 2. 什麼是發行人的祕密?應該輸入什麼?
- 3. SESSION應該保存什麼東西,什麼不應該保存?
- 4. 隨着Dalli,你爲密鑰和祕密設置了什麼?
- 5. 密鑰保管庫密鑰與祕密
- 6. 你應該使用ASP.NET Profile Provider保存什麼?
- 7. 我應該在圖片網址中使用什麼作爲「魔術」或「祕密」?
- 8. 爲什麼Facebook應用不需要應用祕密?
- 9. MongoDB:你應該多久打開一次數據庫?爲什麼?
- 10. 我應該保持Apple開發者團隊ID的祕密嗎?
- 11. 你應該在數據庫中存儲日期的類型是什麼?
- 12. 爲什麼我應該在ProGuard中保存BuildConfig?
- 13. 你在什麼時候將你的fork轉換成你自己的倉庫?
- 14. 我應該使用什麼Maven倉庫來獲取Tomcat罐子?
- 15. 我應該如何使用express.cookieParser()祕密?
- 16. 爲什麼擴展令牌生存期需要應用程序祕密?
- 17. 在`gorilla/sessions`中傳遞給`NewCookieStore()`的祕密密鑰(或認證密鑰)應該是什麼?
- 18. 如果你使用數據庫來存儲$ _SESSION和session_set_save_handler,你應該加密嗎?
- 19. 爲什麼Finalize應該被保護?
- 20. 密鑰倉庫中的內容是什麼
- 21. 爲什麼git倉庫比SVN倉庫小得多?
- 22. 爲什麼不應該使用密碼作爲會話密鑰
- 23. 什麼ASP.NET MVC項目文件應該保存在存儲庫中?
- 24. Rspec中的'應該'是什麼?爲什麼`應該redirect_to`工作?
- 25. .git文件夾應該存儲在我的SVN倉庫中嗎?
- 26. 無法在Azure密鑰保管庫中設置祕密值
- 27. Git倉庫的正確密碼存儲
- 28. 保守祕密的Apps
- 29. 保持祕密密鑰祕密 - 在Android應用程序..任何想法
- 30. 你應該在哪裏保存你的IIS文件
這是一個單詞「祕密」的字典條目:http://www.dictionary.com/browse/secret。 –
注意:「檢出」是錯誤的短語。只要說出來「。被「檢出」意味着他們首先處於存儲庫中。根據定義,存儲庫內的任何內容都不*祕密。 – torek