记住 websockets 的用户

Remembering users of websockets

下午好,

我希望有人可以帮助我提出一个概念。我有一个 websocket 服务器,可以向用户推送 JSON 消息,我编写了一些管理功能,用于向用户推送广播,并在需要时断开用户连接。

我希望能够做的一件事是想出一个 'near' 万无一失的方法 'banning' 用户在需要时连接到服务器。这是我有点迷路的地方,如果我走 cookie 路线,那么 cookie 可能会被清除并且它不再有效,我也不能使用会话 ID,因为一旦他们断开连接,他们就会获得一个新的会话 ID,而且IP地址也有问题,因为很多都是移动动态连接。

我很感激任何关于如何最好地记住用户的提示,所以如果我禁止他们,当他们重新连接时我可以阻止他们。

我的服务器运行是supersocketserver,而客户端是HTML5。

鉴于您当前的限制,没有 "foolproof" 方法可以禁止某人访问您的网站。

出于隐私原因,没有永久的方法来识别给定的浏览器。有 cookies,有 IP 地址,甚至还有一些邪恶的 "perma-cookies" 试图在很多地方存储少量的识别信息(例如 flash cookies 和其他插件数据),以试图使其变得困难(但并非不可能)让用户清除它们。如您所知,IP 地址不是永久性的,也不总是只与一个用户相关联。

当然,用户当然可以只使用不同的浏览器、计算机或移动设备。

因此,通常控制访问的方法是要求用户在使用您的服务之前在您的系统中创建一个帐户。然后,如果您想禁止某个用户,就可以禁止该帐户。由于您希望阻止用户创建新帐户,因此您可以在帐户注册时收集其他识别信息。您需要并可以验证的信息越多,用户就越难创建越来越多的帐户。如果您真的想让用户难以创建更多帐户,这将是一项相当大的工作,因为您需要一些识别信息,您可以验证这些信息并且流氓用户很难复制(信用卡,电子邮件地址、家庭住址等...)。您在这里走多远以及付出多少努力取决于您希望将被禁用户拒之门外的程度。