簡體   English   中英

RESTful服務需要用戶名和密碼才能獲得令牌,可以將憑據(用戶名和密碼)保存在服務器端nodejs中嗎?

[英]restful service requires username and password to get the token, is it ok to save the credentials(user and pass) in server side nodejs?

我有一個應用程序,該應用程序從用戶那里獲取一個csv,將其轉換為json並將json文件保存在AWS的S3存儲桶中。 然后,我使用來自oracle的Restful服務將數據推送到oracle jde。

用戶必須事先經過“批准”才能上傳文件-目前是手動過程,但是需要先將其電子郵件添加到S3存儲桶中。網絡應用會檢查電子郵件是否存在於S3中,然后允許文件上傳,如果不存在,則文件上傳被拒絕。

我目前沒有設置任何其他“用戶身份驗證”。

接下來,為了從外部API獲取令牌,我需要向其提供服務帳戶的用戶名和密碼,由於它仍處於開發階段,因此我將用戶名和密碼保留在我通過的對象中的服務器端nodejs上進入api調用以獲取令牌。

暫時我們不打算讓用戶登錄,也就是說,我如何保護用戶名和密碼,但仍然能夠獲得“允許上傳的已驗證電子郵件”的令牌?

基本上,我認為僅將其保存在可變服務器端節點中不是一個好主意,因此正在尋找另一種將其存儲在某個位置並且仍然能夠對api進行調用的方法。

暫時我們不打算讓用戶登錄,也就是說,我如何保護用戶名和密碼,但仍然能夠獲得“允許上傳的已驗證電子郵件”的令牌?

你不能 除非我有誤解,否則它們不是“經過身份驗證的電子郵件”,而是“預先批准的電子郵件地址”。 您仍然需要驗證用戶身份以幫助保護應用程序。

那么,我是否仍對硬編碼的用戶名和密碼進行哈希處理和加鹽處理並保存到數據庫?

您不能對密碼進行加鹽和哈希處理,因為您打算重用原始密碼。 這使您有責任保護密碼。 不要玩那個游戲。 許多人將相同的密碼用於許多不同的帳戶。 您是否要向用戶發送電子郵件,讓他們知道您存在安全漏洞,並且他們需要重設所有密碼?

基本上,我認為僅將其保留在可變服務器端節點中不是一個好主意

是的,這不是一個好主意。 例如,如果您的服務器死了怎么辦? 然后,您將失去該值。 更不用說RAM的額外成本了,因為所有內容都將存儲在內存中。

  • 將憑據存儲在數據庫中 它可以使用SQL或NoSQL,並且服務器可以位於您喜歡的任何位置

注意事項

  • 在存儲密碼之前不要忘記對密碼進行哈希處理
  • 散列時加一些
  • 要驗證密碼,只需對從客戶端獲得的密碼進行哈希處理,然后將其與數據庫中存儲的哈希進行比較即可
  • 使用HTTPS進行客戶端和服務器之間的通信

暫無
暫無

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

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