2

我正在考虑使用 node.js 和 socket.io 来实现一个聊天/消息传递系统来传递消息等。

但是,系统将使用使用 PHP 会话的 php 身份验证系统。显然,我需要某种方式知道连接的 node.js 用户 X 是经过 PHP 身份验证的用户 X?

经过一番研究,似乎使用 Memcache 与节点共享 php 会话(通过存储在 JSON 等中)是相当普遍的。但是仍然存在识别哪个连接节点用户是哪个存储的 php 会话的问题?

我的第一个想法是使用 PHP 设置的 cookie,利用 PHPSESSID 值等 - 但是用户肯定可以将该 cookie 修改为其他人的 PHPSESSID 和 bazinga?(显然他们要么必须知道 PHPSESSID 要么非常擅长猜测,但这似乎仍然是一个安全漏洞?

您对此有何看法?是实现我想要的最好方法吗?

4

1 回答 1

5

对于您的目的,使用 PHP 会话 ID 应该足够安全,事实上,这就是几乎所有 PHP 站点处理身份验证的方式。用户登录后,必须在浏览器中保存某种“令牌”,以让站点知道他们是谁,以便确定他们已登录。您可以创建自己的会话,也可以使用已经创建的会话,如果这对您来说更容易的话。这个想法是会话 ID 值足够长且足够复杂,以至于在它对特定用户的身份验证有效期间无法猜测。

如果您想进一步保护您的用户,请确保您始终使用 SSL 连接,这样会话 ID 就不会被窥探。

于 2013-05-29T17:18:32.593 回答