![](/img/trans.png)
[英]How to execute a script (e.g. mvnw) as if you were in that directory in the background?
[英]How do you securely provide a sensitive info (e.g. password) to a background application to be started?
我正在開發一個應該在后台運行的Java應用程序,並考慮將一些敏感信息(DB憑據等)外部化,以防它應該更改。 這些信息是啟動應用程序所必需的。 但是,我想知道這樣做的正確方法是什么?
我正在考慮以下問題但需要從安全角度提出建議。
加密密碼將在啟動應用程序時作為主參數傳遞。 但是,我注意到任何用戶都可以在查看操作系統中的進程列表時看到參數。
生成外部文件,即具有視圖限制的java屬性文件(帶有加密憑據),並將文件路徑傳遞給應用程序
將加密的憑據放在用戶的環境變量中,以便應用程序訪問它
注意:我們已經使用了加密工具
就個人而言,我傾向於第二種選擇,但我想知道這樣的案例的建議,評論或最佳做法。
謝謝!
選項2是最常見的。 就個人而言,我不建議選項1和3。
還有其他選擇。
例如,您可以查看PicketBox Vault。 它允許使自定義實現比默認更安全。
實際上它是擴展選項2 - 存儲在Keystore中的密鑰保護的Vault文件。
該密鑰庫(別名)的密碼必須是安全的,但只有一個(兩個)。 當需要保護許多屬性時,它很有用。 它也更易於管理,因為所有屬性都以相同的方式保存在一個地方。
2是最明智的選擇。 1和3的問題是,一旦他們可以訪問“加密”字符串,他們就必須弄清楚你是如何解密它的(你無論如何必須這樣做,才能使用它)。
您是否看過Spring Cloud Config ,我不知道這是否是您的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.