我是前端開發人員,對安全性不太熟悉。
目前,我將用戶的 userId 存盤在 web localStorage 中。
通過使用 userId ,我們可以向服務器請求用戶資訊。
問題是,我有點擔心這種處理userId的方法是否存在潛在的危險。
當然,如果用戶嘗試使用其他 userId 值請求,他們可以獲得其他用戶資料(但不是私人資訊,如電子郵件或密碼等等)
我允許用戶獲取其他用戶資料的原因是在需要時檢查其他用戶的個人資料(例如在個人資料頁面上)
總而言之,在我的localstorage上,存盤了userId,可以讓用戶少登錄,以檢查用戶是否在當前路由中進行了身份驗證。這不是脆弱的嗎?
各位大佬能不能給個意見,夠不夠?
uj5u.com熱心網友回復:
我看到的主要安全問題是任何人都可以更改他們存盤的 userId 以像任何其他用戶一樣進行身份驗證。
如果您的 userId 是增量的,您甚至不必知道任何 userId,您可以猜到它們。如果我的 userId 是 108,那么可能有 107、109 等等。
我的建議是嘗試實作 JWT 身份驗證之類的東西,但如果一開始就太多,存盤 userId 的散列(如 sha256)加上一個秘密字串將無法猜測。這樣您就不能只將 userIds 復制到本地存盤。在服務器中,您會收到哈希和用戶 ID,因此您可以使用用戶 ID 加上您的秘密字串復制哈希,如果它們匹配,您就可以開始了。
uj5u.com熱心網友回復:
localstorage 可以存盤不敏感的用戶相關資訊。如果用戶可以通過更改userID獲取其他用戶資訊,則可以在服務器上對userID進行加密,回傳給頁面。如果用戶無法獲取其他人的加密用戶id,他將無法請求。其他人的資訊
uj5u.com熱心網友回復:
如果用戶登錄成功,則從后端回傳 json web token。然后,您可以存盤該令牌曾經存盤在瀏覽器中的內容。在令牌中,您可以附加有效負載。以用戶 ID 為例。您可以在后端實作一個中間件,接受該令牌并對其進行解碼以獲取附加到它的有效負載。然后,您可以實作使用該有效負載保存或獲取資料的邏輯。
您還可以使令牌過期并使用重繪 令牌重新生成新令牌。這是附加的安全機制。我們用來訪問資源的令牌稱為訪問令牌,我們用來重新生成新令牌的令牌稱為重繪 令牌。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/488258.html
