【问题标题】:How to secure nodejs socket.io server against changing cookies如何保护 nodejs socket.io 服务器免受更改 cookie 的影响
【发布时间】:2016-04-10 21:27:03
【问题描述】:

我已经搜索了 3 天,如何正确验证 nodejs socket.io 服务器中的用户信息,唯一传递给服务器的东西是 cookie,如 PHPSESSID 等,如果需要的话。

我的问题是:如果用户将他的 PHPSESSID cookie 值更改为其他值,比如朋友 cookie 值,然后重新初始化套接字服务器连接,所有应该发送给我朋友的流量都会发送给我。 (用户对用户私人通信)

即使我使用memcached服务器存储会话,也只有一件事可以验证用户,那就是再次会话ID,我应该如何验证用户会话?

我无法更改会话存储位置,因为我使用的是 PHP Wave 框架。 有没有 socket.io 的替代品,但更安全?

【问题讨论】:

  • 这是所有 Web 应用程序中的预期漏洞。如果您可以窃取某人的 cookie,您就可以冒充他们。
  • 这个问题有个名字:会话劫持。
  • @Federico 嗨,session_regenerate_id() 可以解决会话劫持吗?
  • 这里没有真正的解决方案,只是防止它发生。使用 https 并重新生成会话 ID 会有所帮助,但这只是难题的一部分(如果会话数据存储在数据库中,则 sql 注入可能是一个问题 - 或 xss 或一百万个其他可能的问题)。

标签: php node.js frameworks socket.io memcached


【解决方案1】:

它不是百分百解决方案,但您可以使用session_regenerate_id()。它将重新生成会话 ID 而不会关闭它。看到这个帖子:PHP Session Fixation / Hijacking

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 2017-03-04
    • 2010-10-01
    相关资源
    最近更新 更多