【发布时间】:2016-04-05 18:37:27
【问题描述】:
我正在使用 node.js 和 socket.io 构建游戏,但遇到了一个问题。正如您在下面的屏幕截图中看到的,它要求输入用户名。假设我输入了 John Doe。当用户点击回车按钮时,它会将用户名(John Doe)和用户的客户端ID(socket.io.engine.id)发送到服务器,并重定向到play.html。但是,当我导航到 play.html 时,我怎样才能让服务器知道导航到 play.html 的玩家是 John Doe 而不是另一台计算机上的其他人?
服务器控制台:
【问题讨论】:
-
你需要一个会话cookie或者一个查询字符串参数。
-
@Slaks 我在考虑查询字符串参数,但用户可以轻松修改它,而且看起来不是很安全
-
根本不可能信任来自客户端的数据。您要防止什么攻击?
-
与其说是一种攻击,不如说是维护一个“黑匣子”,而且我知道来自客户端的数据不应该被信任,但如果没有字符串参数就无法做到这一点,这似乎很奇怪
-
做什么?您实际上是在要求信任客户来识别自己。为什么这看起来很奇怪?
标签: javascript node.js sockets socket.io