我在使用套接字io的nodejs中構建了一個遊戲服務器。在http上使用套接字io,是否可以安全登錄?
我打算從身份驗證過程中刪除express和cookie,而是使用webstorage和試圖在套接字io握手期間登錄的客戶端。
但是,我正在使用http並以明文形式發送用戶標識和密碼。請,憐憫我!我相信在整個套接字連接中使用https會增加巨大的開銷,因爲更新每100ms發送一次。我目前的解決方案已經爲開發工作,但我相信它是不安全的。
我應該提到我從來沒有設置/使用https,所以糾正我,如果我錯了開銷,我知道這是一個非常激烈的話題。理想的解決方案似乎是通過https連接對用戶進行身份驗證,然後通過http傳輸遊戲狀態信息,但我不知道是否可以實現。
最後,我有2個用於登錄用戶的選項。我可以在服務器上允許套接字io連接,並只從客戶端發出登錄憑據。如果它們不正確,請斷開它們。 但是,更清晰的解決方案是在握手的http標頭中發送用戶標識和pw,然後從socket.io中間件對用戶進行身份驗證,但我不確定以這種方式發送數據是否安全。
我不認爲這是一個標準實踐不存在的小生境問題,但它可能只是使用https。我相信加密用戶憑證沒有好處,因爲數據仍然可以在客戶端和服務器之間窺探。我如何能做到這一點的任何信息表示讚賞, 或者只是點我朝着正確的方向:)
的登錄認證
謝謝你的迴應!它非常有意義。但是,唯一的敏感數據是以握手方式發送(un/pw)。我不認爲這個令牌會被使用,因爲我不打算對玩家所做的每一個動作進行認證。所以我可以使用簡單的摘要認證。因爲我會在handhsake之後通過http發送令牌,所以它同樣容易被窺探。 – MushyShaman
@MushyShaman - 您可以在初始SSL連接上交換加密密鑰,然後使用它加密/解密未來非SSL消息的有效負載。不像SSL本身那樣安全,但可能會爲您使用。 – jfriend00