簡體   English   中英

Socket.io ID 和用戶信息安全

[英]Socket.io ID and user info security

我現在想做的是當用戶離開大廳時,我想發出離開大廳的用戶名,然后在大廳聊天室中顯示該信息。 這是當前的發射:

  $("#lobby-leave-btn").on('click', () => {
    socket.emit('lobby-left', {
      username: username
    });
  });

問題是每個人都可以在控制台中設置他們想要的任何用戶名,即使我在服務器端檢查數據庫中是否存在用戶名,他們也可以輸入不在大廳中的現有用戶用戶名。

有沒有辦法在不傳遞用戶名的情況下做到這一點? 更安全的方式? 我可以在服務器端獲取socket.id但我又無法通過套接字 id 獲取用戶信息。 任何幫助表示贊賞。

如果您有用戶名,那么您應該將它們存儲在服務器端,我假設您正在這樣做(在數據庫中,或者在用戶連接時僅存儲在服務器的內存中)。 在這種情況下,一旦您知道用戶是誰——也就是說,只要他們登錄(如果您有登錄系統)或連接到套接字——您就應該將用戶名存儲為屬性在服務器上的套接字本身上。 然后任何傳入的套接字數據將自動附加用戶名,因為它固有地連接到該套接字。

網絡安全的口頭禪是,如果你能幫助它,你永遠不應該相信用戶提交的數據; 所以你不應該讓用戶在沒有某種驗證的情況下在操作中識別自己。 因此,在登錄或連接時驗證他們一次,然后將他們的身份存儲在套接字上,不要讓他們在想要進行更改時告訴您他們是誰。

暫無
暫無

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

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