2016-06-11 70 views
0

我正在運行一個PHP網站(www.mywebsite.com)。現在我想添加一個實時聊天功能,以便用戶可以與其他人聊天。socket.io JWT與PHP

我決定在另一個與web服務器(chat.mywebsite.com)分離的服務器上運行node.js和socket.io。

想要使用聊天功能的用戶必須通過www.mywebsite.com登錄。登錄後,他們將被髮送到聊天頁面(www.mywebsite.com/chat)。因此,在此頁面上,客戶端必須向JWT的Web服務器發佈請求,並使用此JWT在socket.io中進行身份驗證。

我的問題是:如果JWT被其他人盜用,並且將JWT傳遞給socket.io,那麼它肯定會僞造用戶認證的服務器。那麼這種方法是否正確,或者您能否爲我的情況提出另一種方法?謝謝!

回答

1

如果某人有一個JWT令牌訪問 - 他們基本上劫持他的會話,https://en.wikipedia.org/wiki/Session_hijacking

只要你沒有XSS的或網站上其他vulns,它不應該是什麼你應該擔心。

只要確保socket.io在讓他發送/接收消息之前通過使用jwt令牌來驗證用戶身份即可。