簡體   English   中英

從后端應用程序保護 NodeJS 中的 POST 請求

[英]Securing a POST Request in NodeJS from Backend Application

我想要接收從發送用戶帳戶信息(例如用戶名、email 等)的后端 java 應用程序發送的 POST 請求,並將使用給定信息創建一個帳戶。 我有什么方法可以 go 關於我的 api 只能從我的 java 后端使用(所以人們不能自己開始創建帳戶)? 我假設一種方法是使用 api 密鑰,但我很難找到有關如何實現該密鑰的資源。 有人可以幫助我並引導我朝着正確的方向前進嗎?

最常見的方法是使用 API 密鑰。

  • 您將擁有 NodeJS 服務器的有效 clientsId 列表( Note that the JAVA backend server would act as a client for your Node JS server when creating users )。
  • 除了有效客戶端列表之外,您還需要為每個客戶端存儲一個有效的 API 密鑰。
  • Java 后端將在 POST 請求中向您發送其 clientId 和 API 密鑰。 您需要驗證該客戶端的客戶端 ID 和 API 密鑰。
  • 一旦兩者都得到驗證,您可以假設請求來自您的 Java 后端。
  • 有效的 clientId 列表和關聯的 API 密鑰都應存儲在環境變量中。 API 密鑰對於不同環境中的相同客戶端應該不同。

我過去實現這一點的另一種方法,我認為更安全,是使用 RS256 Algo JWT 令牌和公鑰和私鑰。

  • 您的 Java 后端應生成公鑰/私鑰對並為節點后端提供公鑰。
  • 隨着 POST 請求,Java 后端將使用私鑰生成並簽署 JWT 令牌並將其發送到您的 NodeJS 后端。
  • 您的 NodeJS 后端應使用公鑰驗證令牌。
  • 由 Java 后端生成的 JWT 令牌應該是短暫的。
  • 每次 Java 后端必須發送 POST 請求時,它應該生成一個新的 JWT 令牌。

JWT 的使用更安全,因為它們的壽命很短,您不必擔心令牌被泄露。 如果 API 密鑰泄露,您必須在兩個后端之間進行協調才能開始使用新的 API 密鑰。 但是,如果 JWT 令牌泄露,則同一令牌一旦過期就無法使用。 讓 JWT 令牌短暫存在是安全的,可能是 1-2 分鍾。 由於私鑰和公鑰不會隨每個請求一起發送,因此泄露的可能性較小。

暫無
暫無

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

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