1

我目前有一个过时的 CMS 系统,我正在尝试向其中添加实时聊天功能。CMS 使用 IIS、MSSQL 和 PHP 运行。

聊天功能将在运行 Nodejs 和 Socket.io 的单独 linux 机器上运行

我已经设法让 CMS 成功打开到节点服务器的连接,现在我需要某种方式来验证用户。

  • Node 服务器后面不会有数据库
  • Node 服务器将无法通过套接字访问 CMS
  • 新 CMS 用户的可能性(非常常见)意味着我不能只将用户密码复制到节点服务器

我目前唯一的想法是将一组用户数据(id、姓名、电子邮件地址)放在一起,创建这些数据的散列,然后将数据和散列发送到 Node.js。然后,节点服务器将尝试对数据进行哈希处理,并根据 CMS 发送的哈希值对其进行验证。(显然 CMS 和 Node 都有一个预先确定的私有盐用于散列)

有没有更好的方法来实现这一点?!

4

1 回答 1

0

一个好的经验法则是:除非您是密码学家,否则不要推出自己的加密货币,即使如此,也要三思而后行。

我的建议是这样的:

  • 通过 HTTPS 在它们自己的子域上运行两台服务器(显然是同一个域)
  • 在会话 cookie 上使用 *.domain.com cookie 域,带有 Secure 和 HttpOnly 标志,以便两个子域都可以看到它
  • 将您的 PHP 会话以 JSON 格式保存到两个服务器都可以访问的外部键/值存储
  • 然后节点服务器可以根据安全 cookie 中的 ID 简单地查找有效会话
于 2013-01-29T14:55:21.063 回答