2014-10-10 241 views
0

我在web應用程序上工作,我想通過websockets向用戶發送實時通知。這些通知只能由通知所屬的用戶接收。 我不知道是否將一個臨時身份驗證令牌(對用戶來說是唯一的)傳遞給javascript並將腳本連接到websocket服務器並將authtoken作爲參數傳遞給握手是個好主意。將身份驗證令牌傳遞給JavaScript,然後使用此身份驗證令牌通過websocket進行登錄是否安全?當然,web應用程序也受到SSL和Web套接字服務器的保護。如何進行websocket身份驗證?

回答

0

您可以嘗試

User authenticate to Web app Server 
Web app Server will generate 1 Key Code for this session (Maybe Md5 with salt is username) if user are valid 
Web app Server send this key to Web Socket server 
Web app Server send this key to client-side 
Client will send this key to websocket server to authenticate 
If socket contained this key -> user is valid -> OK, continue to transfer data between socket and client, Else Web socket server will stop this connection. 

這將是安全的,因爲身份驗證密鑰都是唯一的和SSL將使它更好。 希望它能幫助你。這是我們用於構建FOREX系統的解決方案:通過CAS(單點登錄)和WebSocket進行身份驗證來發送索引數據。在我們的例子中,CAS服務器會生成1個單一登錄ID,我們用它來驗證。

+0

'此會話的鍵碼(可能是帶鹽的Md5是用戶名)''。我認爲這是不安全的 - 有人可以只是某人的用戶名和認證websocket服務器。我對嗎? – latata 2014-10-10 16:59:12

+0

我用過「也許」。密碼算法將是他的祕密。 :) – LogPi 2014-10-11 01:04:35