我有一個運行在nodejs上的JavaScript應用程序。它讀取stdin以獲取用戶名和密碼以訪問一些在線服務。保護Node js運行時或禁用調試/檢測
如果需要重新登錄,這些憑證保留在應用程序運行期間(24/7)的整個變量中。
訪問服務器的人是否可以「調試」應用程序並獲取這些變量,就像人們在瀏覽器中一樣?或任何其他方式。
我對節點的內部工作仍然有點不甚瞭解。編程: 該應用程序正在Docker容器上運行!
我有一個運行在nodejs上的JavaScript應用程序。它讀取stdin以獲取用戶名和密碼以訪問一些在線服務。保護Node js運行時或禁用調試/檢測
如果需要重新登錄,這些憑證保留在應用程序運行期間(24/7)的整個變量中。
訪問服務器的人是否可以「調試」應用程序並獲取這些變量,就像人們在瀏覽器中一樣?或任何其他方式。
我對節點的內部工作仍然有點不甚瞭解。編程: 該應用程序正在Docker容器上運行!
這取決於服務器。如果他們擁有root或Administrator管理員,他們可以通過多種方式獲得訪問權限,直至包括直接從內存中讀取它們。如果他們使用的是標準帳戶,那麼只要他們沒有與您的應用在同一個帳戶上運行,則可能會更安全。這總是一種可能性,但您可以通過使用單獨的帳戶,限制操作系統用戶對機器的訪問以及至少對憑證進行加密來最大限度地降低風險。還要確保權限已設置,以便他們不能寫入或讀取應用程序代碼,並且如果他們不應該執行它,也要阻止它。至於調試節點,我的理解是你必須在調試模式下顯式運行它。但還有其他方法可以肯定,所以最好限制訪問權限,特別是對服務器的物理訪問權限,並使用加密。更好的是,如果你能以加密形式卸載這些證書並清除任何持有它們的變量。
@Aus 1.必須假設攻擊者**將獲得root /管理員權限。 2.將雙因素身份驗證設置爲服務器。 – zaph
@zaph我編輯了這個問題,它在一個Docker容器上運行,我不知道它是相關的。 – Aus
它在Docker上運行,我正在閱讀使用「節點」用戶而不是默認的根。 – Aus