gpt4 book ai didi

python - 使用 websocket 连接时,对用户进行身份验证的可能方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 20:55:22 27 4
gpt4 key购买 nike

示例场景:通过 websocket 连接的基于 Web 的多用户聊天应用程序。如何确保(或保证)此应用程序中的每个连接都属于某个经过身份验证的用户,并且“不能”被假冒用户利用或在连接期间进行干预。

顺便说一句,我在服务器端使用 tornado websocket 来实现基本的聊天室,并且已经对我的应用程序的非 websocket 部分进行了身份验证。

ps:假设经过身份验证的用户发布了他想要的内容,并且当其他用户打开项目的列表页面并自动将其他用户添加到 websocket 监听器列表中时,我希望每个用户能够单独与项目的买家聊天,而不是在聊天室方式,但一对一聊天

最佳答案

首先,关于 WebSocket,您应该记住两点:(a) 它是一个不断发展的标准;(b) 它的设计目的是与不受信任的客户端合作。

您应该始终对 WebSockets 做的最大和最重要的事情是检查它们的来源。如果来源不匹配,显然您不想与该客户打交道,因此请忽略他们的请求。此外,请确保您使用的是“wss”安全 WebSocket 协议(protocol),而不是“ws”不安全协议(protocol)。这将确保您的消息被加密。

这样做的问题在于,这些信息可能会被欺骗。见 this blog post快速演示一下。

额外的安全性:

  • 尝试发送一个加盐 token ,对其进行加盐/哈希处理,然后在握手阶段发回和验证。
  • 限制过于频繁发生的请求(就像 IRC 协议(protocol)一样)。如果用户在一秒钟内提交了 10 行或更多行,则忽略该用户。
  • 做一个快速的垃圾邮件检查(有很多算法)——坚持轻启发式,否则它会给你的服务器带来负担。诸如“免费”或“伟哥”等词的存在。给用户一个分数,代表他们发送垃圾邮件或是机器人的可能性。当它被破坏时,从服务器启动它们。

希望对您有所帮助!对不起,如果没有。这是我在 StackOverflow 上的第一个答案。 :P

关于python - 使用 websocket 连接时,对用户进行身份验证的可能方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8339506/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com