2013-05-29 79 views
1

我期待在如何使用Node.js实现聊天/邮件系统和socket.io通过邮件等PHP和Node.js的共享会话标识

但是系统将使用PHP使用PHP的身份认证系统会话。显然我需要一些方法来知道连接的node.js用户X是PHP认证的用户X?

经过一些研究,似乎使用Memcache与节点共享php会话(通过存储在JSON等中)是相当常见的。然而,仍然存在确定哪个连接节点用户是存储php会话的问题?

我的第一个想法是使用PHP设置的cookie,利用PHPSESSID值等 - 但肯定用户可以将该cookie修改为其他人的PHPSESSID,并且bazinga? (很明显,他们要么知道PHPSESSID,要么很善于猜测,但这仍然是一个安全漏洞?

你对此有什么看法?是达到我想要的最好方法吗?

回答

5

使用PHP会话ID应该足够安全以满足您的需要,事实上,这是几乎任何PHP站点都会处理身份验证的方式。一旦用户登录,某种“令牌”必须保存在浏览器中让网站知道他们是谁,这样就可以确定他们已经登录了,你可以创建你自己的,或者如果你更容易使用已经创建好的会话,这个想法是会话ID值很长足够复杂,足以使其在特定用户的有效期内无法被猜测, s身份验证。

如果您想进一步保护您的用户,请确保您始终使用SSL连接,这样无法监听会话ID。

+3

+1,总之,会话ID是一个临时密码,只能使用一次。 –

+0

这是一个很好,简明的说法。 – doublesharp

+0

太好了,谢谢。我只是想在继续之前得到另一个意见:) – swiss196