2
我有一个基于socket.io的身份验证方法,我知道您可以将客户端ID保存在cookie中或添加哈希以请求url。在node.js中管理会话,使用socket.io和不使用cookie
但我正在寻找一种在nodejs中实现会话的方式,它不依赖于在客户端存储数据,这甚至有可能吗?
我有一个基于socket.io的身份验证方法,我知道您可以将客户端ID保存在cookie中或添加哈希以请求url。在node.js中管理会话,使用socket.io和不使用cookie
但我正在寻找一种在nodejs中实现会话的方式,它不依赖于在客户端存储数据,这甚至有可能吗?
如果你不想存储用户的数据,那么你将不得不使用他们已有的现有数据:浏览器版本,IP,用户代理......但这不会很可靠,导致任何网站将能够看到这些信息,因此会话将变得不安全。
这不会发生在cookies上,因为它们是“私人的”,它们只能在特定的域下看到。
另一种方法,你知道的是在你的服务器生成的每个html链接/表单中添加一个秘密标签,并使用该秘密密钥来识别登录用户。 这与Cookie类似,但更复杂。你不需要在用户的机器上“存储”任何东西......
这种方法存在问题,如果用户共享链接,自定义链接,那么你的秘密密钥不再是秘密。
编辑:我发现你应该阅读Node.JS session without cookies
谢谢类似的问题,使用的客户端已经有这正是我想要做的现有数据。你怎么看待使用IP地址?那也不安全?我的意思是客户端可以手动更改他们的IP,还是有可能在同一时间在客户端重复IP? –
IP是动态的。另外同一路由器下的两个客户端将具有相同的IP。所以你应该添加更多的信息来创建一个“独特的”组合。请记住,如果您的用户进入另一个网站,那么该网站也将能够看到他们的IP,并获取您使用的相同信息,因此您网站上的会话将不安全。 – TheBronx