我想知道,如果防止用户通过发出套接字来淹没服务器是有用的。
如果是,如何阻止这些攻击。我问这个问题,因为最近没有很多帖子……
防止用户通过发出套接字来淹没服务器是很有用的。
这完全取决于您的应用程序以及流氓客户端发送大量内容的后果 emits() 。如果您的服务器发生故障或服务严重受损,那么它是有用的。
emits()
如何阻止这些攻击
我会说这通常适用于速率限制伞,与http请求相同。如果您想要防止过度活跃的客户端,那么您通常会在服务器上设置一些速率限制(这就是Google为其API所做的事情),当客户端超过速率限制时,您可以放弃他们的socket.io连接并拒绝来自该用户的新连接一段时间。在多次违规后,您可能会禁止他们的帐户。
您还可以将同一客户端的同时连接数限制为一些较小的数字(取决于您的应用程序应该是多少),以防止它们多次从同一客户端敲击您。
提高复杂程度,您可以将速率限制设置为基于帐户,因此如果帐户有多个打开的连接,则计算所有帐户连接的速率限制,而不是单独的每个连接。