我正在制作一个使用 WebSockets 在浏览器和节点服务器之间进行通信的 webapp。
如果您打开调试控制台 (F12),您可以访问套接字实例并对其进行写入。
例如,socket.send('packetname', 'data')
是什么阻止了某人打开控制台并写这样的东西?
socket.send(new Array(99999));
发送到服务器的所有这些数据都可能是压倒性的,当它到达那里时,带宽已经被使用并且已经被处理。当然有验证,但此时为时已晚,资源已经用于处理它。
您也不能只检查数组的长度,因为有人可以发送一个数组,其中第一个元素是一个巨大的数组,或者其他任何东西。我认为没有办法计算字节大小,所以我猜最好的选择是对数据进行字符串化以检查其大小(这非常慢)?
我所有的数据包都非常小。我正在寻找一种方法来防止超过一定大小的数据包被发送到服务器。这可能吗?