我正在尝试使用 NodeJS 制作一个应用程序,该应用程序在很大程度上取决于用户通过浏览器中的典型 WebSocket 协议连接到它,我在 nodeJS 中为此使用 ws 库。
实际的应用程序工作正常,我可以断开任何用户(如果我可以检测到当前 IP 地址已经连接),并使用用户名和密码授权它(所有在服务器端处理,之后他们通过 websocket 发送用户名和密码,我什至可以在服务器端设置一个计时器,以防止客户端强制服务器尝试使用用户名和密码进行授权);但是,我还没有找到一种方法来阻止连接发生。
我的意思是什么?例如,在客户端,某人可以打开他们的 javascript 控制台并简单地输入如下内容:
setInterval(function() {
new WebSocket("ws://myServerURL")
}, 1)
并简单地让它继续下去,很快整个服务器将完全被封锁和/或因来自同一客户端的大量持续连接而崩溃。
所以,虽然我可以在用户尝试连接后断开连接(例如,如果我检测到它已经连接到同一个 IP 地址),但是我怎样才能阻止某人简单地发送持续连接和/或命令喜欢上面的代码?如何从一开始就完全阻止整个 IP 地址打开任何新连接?