Socket.IO HTTP - 如何保护配置

时间:2013-12-11 07:33:54

标签: node.js socket.io

我正在运行Socket.IO,其中node.js位于nginx后面,只能通过所需的域进行代理。它是一个PHP站点,站点中的所有安全性都是用PHP完成的。

对于Socket.IO用户,通过传递他们的UserID进行身份验证,如下所示:

  iosocket.on('connect', function () {
    iosocket.emit('userid', '1000015349');

这很好但我很想知道是否还有其他措施可以进一步保护这种配置。

注意:我没有使用SSL,因为我听说将HTTP站点与HTTPS websockets混合不是最好的方法,并且会在某些浏览器中引起问题,例如firefox。

Cookie,令牌等有帮助吗?我可以在登录后的浏览器DOM中添加一个唯一的令牌,用于验证连接或cookie,如果更好的话。

THX

1 个答案:

答案 0 :(得分:1)

为什么不,数据就是数据。您只需解码它并将会话ID与用于存储会话数据的字符串密钥链接。我实现(SessionHandler)并在php的输入点分配一个自定义会话处理程序。在public bool write ( string $session_id , string $session_data )我用$ session_id param链接SID(注意SID!= $ session_id param,使用文件作为保存处理程序,不知道什么是memcache或redis或其他缓存保存处理程序)。 在node.js进入点我读取cookie以找出SID,从会话存储中检索编码的会话数据字符串,解码它(在这里查找stackoverflow - 有一些javascript实现的php会话数据编码器\解码器)并使用我的node.js应用程序。

实际上,这就是我在其中一个项目中的表现。