當Socket.IO處理新的連接時,它將創建Socket
對象,並且此對象的其中一個屬性爲id
。這是用於識別連接的「不可猜測」(根據文檔)字符串。是否是Socket.IO套接字ID敏感/私有數據?
在構建應用程序時,是否認爲將此ID廣播給其他客戶端是安全,安全和良好的做法?我的傾向是哈希ID和廣播摘要可能是一個更好的主意。
當Socket.IO處理新的連接時,它將創建Socket
對象,並且此對象的其中一個屬性爲id
。這是用於識別連接的「不可猜測」(根據文檔)字符串。是否是Socket.IO套接字ID敏感/私有數據?
在構建應用程序時,是否認爲將此ID廣播給其他客戶端是安全,安全和良好的做法?我的傾向是哈希ID和廣播摘要可能是一個更好的主意。
該ID不是敏感數據,除非您自己的代碼以某種方式使其變得敏感。沒有socket.io客戶端操作接受套接字ID,所以如果客戶端有套接字ID,那麼除非您的代碼實現了對其進行操作的消息,否則他們無法使用它。
它是不可猜測的,所以你可以使用它作爲一個id與其他客戶端共享,而不允許該客戶端知道他們可能已被給予誰(如匿名ID)的身份證。
因此,使用它作爲標識符來引用某個其他用戶的套接字正是它的目的,並且不會導致安全或隱私問題,除非您自己的客戶端操作引起此類問題。
我明白了,謝謝。這似乎是這樣,所以我會接受你的答案。 – Blieque
它與任何事情都沒有關係,它和本身新創建的散列一樣好。你爲什麼要把它廣播給別人呢? – laggingreflex
@laggingreflex我只是爲了識別其他客戶而廣播它。這是一款非常簡單的遊戲式應用,客戶可以播放X和Y的位置。包含其他客戶端座標的對象被創建並經常更新。我需要一種方法來命名這些對象,並且我正在使用由Socket.IO生成的ID。 – Blieque