我在tomcat服務器context.xml中設置了一個連接池(由幾個webapps使用的連接似乎是最適合它的地方)。我可以從連接池中設置JDBC連接的密碼嗎? (Tomcat 5.5.17)
但是,我不喜歡在文件中硬編碼密碼。有沒有辦法讓我從別處檢索密碼(安全密碼存儲),並在集中連接建立時務實地進行設置?
謝謝
瑞安
我在tomcat服務器context.xml中設置了一個連接池(由幾個webapps使用的連接似乎是最適合它的地方)。我可以從連接池中設置JDBC連接的密碼嗎? (Tomcat 5.5.17)
但是,我不喜歡在文件中硬編碼密碼。有沒有辦法讓我從別處檢索密碼(安全密碼存儲),並在集中連接建立時務實地進行設置?
謝謝
瑞安
我相信你正在尋找Custom Resource Factory,你可以編碼你的工廠創建javax.sql.DataSource對象或基於DBCP(或這樣的)連接池門面對象,和有你的自定義代碼來獲取和設置連接的用戶名/密碼。
請注意,如果您正在尋找額外的安全性 - 務實的方式是使用文件系統安全來保護您的context.xml文件,添加額外的層(例如您的資源工廠的自定義實現),將不會使系統更安全,因爲您仍然需要在某處配置的安全密碼存儲區的密碼 - 最終會導致雞或蛋問題。
你可能想實現單點登錄的Web應用程序(例如使用JOSSO)。請注意,這可能是一個小項目的重大開銷,但這應該可以解決您的問題。除此解決方案外,還有供應商特定的應用程序,如Oracle的Secure External Password Store。另一個依賴於平臺的示例:您可以配置PostgreSQL pg_hba.conf。嘗試以下認證選項:
編輯:在我們使用3DES加密密碼的項目之一。是的,關鍵是硬編碼在應用程序:)
的最後部分非常感謝您的回覆,我很欣賞您花時間回答。然而,我試圖堅持使用標準的tomcat DBCP,並且簡單地'抽取'我的密碼檢索,所以我將下面的答案標記爲已解決的解決方案。謝謝。瑞安 – Ryan 2010-02-07 23:07:09
看看http://www.owasp.org/index.php/Securing_tomcat – 2010-02-07 23:32:19