javascript - nodejs ws 库——如何防止暴力攻击(密码和崩溃)
问题描述
我正在尝试使用 NodeJS 制作一个应用程序,该应用程序在很大程度上取决于用户通过浏览器中的典型 WebSocket 协议连接到它,我在 nodeJS 中为此使用 ws 库。
实际的应用程序工作正常,我可以断开任何用户(如果我可以检测到当前 IP 地址已经连接),并使用用户名和密码授权它(所有在服务器端处理,之后他们通过 websocket 发送用户名和密码,我什至可以在服务器端设置一个计时器,以防止客户端强制服务器尝试使用用户名和密码进行授权);但是,我还没有找到一种方法来阻止连接发生。
我的意思是什么?例如,在客户端,某人可以打开他们的 javascript 控制台并简单地输入如下内容:
setInterval(function() {
new WebSocket("ws://myServerURL")
}, 1)
并简单地让它继续下去,很快整个服务器将完全被封锁和/或因来自同一客户端的大量持续连接而崩溃。
所以,虽然我可以在用户尝试连接后断开连接(例如,如果我检测到它已经连接到同一个 IP 地址),但是我怎样才能阻止某人简单地发送持续连接和/或命令喜欢上面的代码?如何从一开始就完全阻止整个 IP 地址打开任何新连接?
解决方案
推荐阅读
- docker-compose - JHipster v7.1.0 - 如何使用开发配置文件创建 docker-compose conf
- python - 使用当前年份将月份日期 ('%B %d') 日期列解析为日期时间
- python - 如何在 django 中通过 discord.py 和 discord-ext-ipc 使用进程间通信 (IPC)/websocket
- php - PHP preg_match 1 字符串 2 位验证
- r - 将数据坐标转换为R中的绝对坐标?
- powerbi - Power BI Matrix 报表中的缩进
- android - 如何确定是否从 Google Play 安装了 Android 应用程序?
- java - 无法解析主机“mywebsite.com”:没有与主机名关联的地址
- javascript - JavaScript中的矩阵数组算法逻辑
- html - 使css下拉菜单项不与父项重叠