因此,我正在研究製作圖形聊天應用程序/網站(用戶坐在房間裏的2D頭像和聊天中)以及我迄今爲止所做的所有研究(很多!),一個LAMP堆棧似乎適合我的大部分站點,一些node.js和websocket協議用於處理髮送的實際聊天數據(用戶消息等)。我對創建這個範圍的任何東西都不是很有經驗(我更習慣於前端工作),但到目前爲止這是一個有趣的挑戰!帶有共享會話和用戶身份驗證的WebSockets和HTTP安全
我的問題是,我似乎無法找到關於驗證用戶信息的大量信息。我已經讀過,websocket本質上是相當不安全的,並且驗證發送的數據的來源是很好的...
不過,我關心的是用戶的實際身份。如果我使用Javascript來啓動套接字連接,我該如何防止用戶「欺騙」任何信息?是否有可能將用戶的PHP會話數據連接到處理websocket連接的服務器,以便Javascript不會處理除真實消息文本之外的任何內容?
例如,如果我以「Kris」身份登錄併發送消息「Hello!」或者改變了我的頭像圖片,我只想讓客戶端處理「Hello」或者頭像圖片的URL,並且保留所有其他信息在服務器端來回傳遞,如用戶名,以防止任何人搞亂了客戶端代碼。
很好的答案。在現代瀏覽器中,您不應該對HTTP身份驗證(例如HTTP Basic)的支持有限。意味着您需要在Web套接字層上實現一些身份驗證邏輯。 – bodokaiser
我使用它來避免在WebSockets上進行任何身份驗證,並且在HTTP上使用一些OAuth或類似技術進行身份驗證 - 創建會話用戶後,只有在WebSockets進行連接後,纔會恢復會話並檢查您是否是經過身份驗證 - 如果不是,斷開連接,如果是 - 很好,您很安全。 – moka
聰明的解決方法!我個人試圖避免狀態服務器端,但好主意:) – bodokaiser