示例场景:通过websocket连接的基于Web的多用户聊天应用程序。如何确保(或保证)此应用程序中的每个连接都属于某个经过身份验证的用户,并且在连接期间“不能”被假用户模拟或干预利用。
顺便说一下,我在服务器端使用tornado websocket来实现基本的聊天室,并且已经为我的应用程序的非websocket部分进行了身份验证。
注:假设经过身份验证的用户发布了他想要的内容,当其他用户打开项目的列表页面,并且自动地将其他用户添加到websocket侦听器列表中时,我希望每个用户能够单独与项目的买家聊天,而不是以聊天室的方式,而是通过一对一的聊天
首先,关于WebSockets,有两件事你应该记住:(a)它是一个不断发展的标准,(b)它的设计意图是与不受信任的客户合作。
对于WebSockets,您应该始终做的最大和最重要的事情是检查它们的来源。如果来源不匹配,显然您不想处理该客户机,所以忽略他们的请求。另外,确保您使用的是“wss”安全WebSocket协议,而不是“ws”不安全协议。这将确保您的邮件是加密的。
这样做的问题是,这些信息可能会被欺骗。请参见this blog post快速演示。
附加安全:
希望能有帮助!如果没有,很抱歉。这是我在StackOverflow上的第一个答案。:P页
这就是websocket连接的全部目的。你可以通过握手来验证它们。有关更多信息,请参见此处: http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-08
我非常确定websocket连接会将在非websocket连接中建立的所有cookie发送到您的应用程序。您应该能够查询Django的会话存储以获取连接的cookie,并确定socket所属的用户。
退房:https://docs.djangoproject.com/en/1.3/topics/http/sessions/#configuring-the-session-engine
相关问题 更多 >
编程相关推荐