【问题标题】:Socket.io - Can someone impersonate another socket id?Socket.io - 有人可以冒充另一个套接字 id 吗?
【发布时间】:2020-04-30 06:36:03
【问题描述】:

在 socket.io 房间中,一些 socket id 比其他 socket id 拥有更多特权。我存储了拥有更多权限的套接字 ID,并检查您是否有权执行某个操作,以确保您的套接字 ID 在我存储的套接字 ID 中。我的疑问是:既然每个人都知道房间里的所有其他套接字 id,那么有人可以冒充另一个套接字 id 以获得更多权限吗?

【问题讨论】:

    标签: javascript socket.io


    【解决方案1】:

    没有简短的答案,因为它取决于您自己的设计和实现。但是,这并不存在固有风险,这取决于您使用 ID 的方式。

    请查看Socket.io - Is the "socket ID" considered sensitive information?

    如果您觉得这很有用,请标记为答案。谢谢

    【讨论】:

    • 我的问题是我是否可以冒充另一个socket id,我没有找到明确的答案...
    • 如果您使用 id 来区分用户或设置规则/权限并且它是可见或可访问的,那么可以。最安全的选择是只使用网络令牌来加密/解密您的 ids 服务器端
    • 您能否提供一个 PoC,您可以在其中伪装成另一个套接字 io?
    • 我的意思是,另一个套接字 ID。
    【解决方案2】:

    您可以使用 JWT 轻松避免这种情况,因此您可以始终信任有效负载中的 id。 JSON Web 令牌可以有任何对象,例如{id: 'random-id', privilege: 'admin},可以在您的后端使用您的密码进行验证。 有关 NodeJ,请参阅 jsonwebtokensocketio-jwt。 希望这能有所帮助。

    【讨论】:

    • 那么可以冒充另一个socket id吗?
    猜你喜欢
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多