0

好的,所以人们一直在使用我的多 ogar 编辑服务器(就像 agar.io 私人服务器),我注意到他们都使用相同的用户代理。如何使用 ws 检测来自同一个用户代理的连接数,以便阻止它们?

就像是

if (useragentconnections += 3) {
    ws.terminate()
}
4

1 回答 1

0

除非您需要某种帐户登录/身份验证,否则没有万无一失的机制来识别相同的用户代理。以下是一些可以使用的技术,每种技术都有不同程度的成功:

  1. 使用某种唯一 ID 对连接进行 Cookie。所有 webSocket 连接都以 http 请求开始,因此您可以对它们进行 cookie。如果这是来自浏览器,cookie 将显示在来自该用户代理的每个新 webSocket 连接上,您可以识别它们。如果这是来自某些自定义代码的程序化 webSocket,那么它们可能不会保留 cookie,因此这将不起作用。

  2. 查看 IP 地址并计算来自该 IP 地址的连接数。如果用户是个人家庭用户,那么这将唯一标识从该家庭网络连接的任何用户。如果这是一个公司用户,那么该公司网络上可能有许多用户似乎通过 NAT 来自同一 IP 地址,因此您可能会错误地将同一公司/业务网络中的许多用户识别为具有相同 IP 地址.

  3. 需要某种帐户登录/身份验证,并有一些服务条款。如果您自动或手动识别滥用行为,则可以禁止该帐户。

  4. 需要一些手动“人工”干预才能登录到您的服务器,例如验证码。这是为了防止自动编程登录并要求有人在另一端。

于 2019-09-03T01:04:37.647 回答