簡體   English   中英

管理Node.JS的Web服務憑據的最佳實踐?

[英]Best practice for managing web service credentials for Node.JS?

我們正在計划一個安全的Node.JS服務器,該服務器使用多個第三方Web服務。 每個都需要運營團隊需要配置的憑據。

顯然,他們可以簡單地將它們以純文本形式放入配置文件中。

Microsoft .NET似乎為DPAPI提供了更好的選擇 - 請參閱憑據存儲最佳實踐 有沒有辦法通過IISNode提供此功能? 或者是否有其他選項可以在Node-JS配置中保護此類憑據?

  • 查爾斯

這里有幾個選項的廣泛討論,包括xShirase建議的兩個選項:

http://pmuellr.blogspot.co.uk/2014/09/keeping-secrets-secret.html

用戶定義的服務解決了這個問題,但僅適用於Cloud Foundry。

這篇博客http://encosia.com/using-nconf-and-azure-to-avoid-leaking-secrets-on-github/指出你經常可以在服務器上單獨設置環境變量,並建議使用nconf來讀取它們和配置文件分開。

我仍然想知道IIS是否有特價?

  • 查爾斯

安全地有兩種方法:

第一個是在啟動應用程序時使用命令行參數。

然后在process.argv找到這些參數

那么, node myapp.js username password會給你:

process.argv[0]=node
process.argv[1]=/.../myapp.js (absolute path)
process.argv[2]=username 
process.argv[3]=password 

其次是將憑證設置為ENV變量。 它通常被認為是最佳實踐,因為只有您可以訪問這些變量。

您必須使用export命令設置變量,而不是在process.env訪問它

我目前必須為我的外部API憑據做同樣的事情。 這就是我做的

  • 安裝node-config模塊
  • 創建一個名為config / config.js的文件夾和文件
  • 這里需要(config)模塊
  • 在本地框中,它從local.json文件中讀取配置
  • 我在local.json中有api鍵和共享密鑰的虛擬值
  • 在我的QA環境中,我導出兩個變量NODE_ENV =“QA”和NODE_CONFIG_DIR =“qa服務器上我的配置文件夾的路徑”
  • node-config模塊從“路徑到配置文件夾/ QA.json”讀取配置
  • 現在我在QA.json中擁有真正的api密鑰和憑證
  • 在這里,您可以使用加密來加密這些值並將其放回QA.json中
  • 在你的應用程序中獲取這些配置值並解密在休息調用中使用它

希望這可以幫助。

所以你的配置可以和節點代碼在同一個容器中。

參考這個加密和解密http://lollyrock.com/articles/nodejs-encryption/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM