2017-10-13 99 views
2

如何在node.js實現中安全地存儲postgresql pg.Pool連接池憑證?將配置對象設置爲傳遞給pg.Pool後,它將以未加密方式存儲在Pool對象中,這意味着它始終在內存中可見。postgresql pg.Pool連接池憑據的安全

pg.Pool是否有一個回調機制,它可以調用你的函數只在需要憑證時才動態解密,或者以某種方式將它保存在其他地方,而不是將其存儲在池對象中,目標是保留它在內存不足的情況下處於未加密狀態?

請指教。

+0

但是,這是嚴格的服務器端,你沒有泄漏到客戶端。那麼你最擔心的是什麼? –

+0

我的問題是,如果黑客能夠獲得內存轉儲,那裏將存在一個純文本密碼以訪問數據庫以及數據庫名稱,用戶名等。我詢問當前是否有任何方法防範此漏洞?我還建議可以防止此漏洞,並且應該有辦法這樣做。 – CaptAmericode

回答

1

確實pg.Pool有所回調機制,它可以調用函數來解密在飛行僅在需要的憑據

沒有這樣的事情,因爲連接細節都嚴格意味着該服務器端。

只能在創建Pool對象之前解密連接。之後,它將被對象保存在內部。

在公司環境中,您的數據庫服務器應該駐留在DMZ中。

+0

是的,這是我的理解。我只是想知道是否有另一種方法來保護池配置細節從內存轉儲攻擊,因爲它是脆弱的。在共享主機環境中,由於機器的安全性和監控不在您的手中,因此更成爲一個問題。 – CaptAmericode

+1

@CaptAmericode目前唯一可行的方法是保護服務器。一旦違反 - 你就暴露了。這就是爲什麼適當託管安全的東西需要DMZ內的服務器。 –

+0

感謝您添加有關DMZ的信息。如果您將此信息添加到您的答案中,我會接受它,因爲我認爲這會讓您的答案更加完整。 – CaptAmericode