NodeJS socket.io 泛滥
NodeJS socket.io flood
我想知道,防止用户通过发出套接字淹没服务器是否有用。
如果是,如何阻止这些攻击。
我问这个问题是因为最近关于它的帖子不多。
It is useful to prevent users from flooding the server by emitting sockets.
这完全取决于您的应用程序以及恶意客户端发送大量 emits()
的后果。如果发生这种情况时您的服务器出现故障或服务受到严重损害,那么是的,它会很有用。
how to block theses attacks
我想说这通常适用于速率限制范围,与 http 请求一样。如果你想防止过度活跃的客户端,那么你通常会在你的服务器上设置一些速率限制(这就是 Google 对其 API 所做的)并且当客户端超过速率限制时,你可以删除他们的 socket.io 连接并在一段时间内拒绝来自该用户的新连接。屡次违规,您可能会禁止他们的帐户。
您还可以将来自同一客户端的同时连接数限制为某个较小的数量(取决于您的应用程序,该数量应该是多少)以防止它们从同一客户端多次攻击您。
提高复杂度,您可以使您的速率限制基于帐户,这样如果一个帐户有多个打开的连接,您可以计算所有帐户连接的速率限制,而不是单独计算每个连接。
我想知道,防止用户通过发出套接字淹没服务器是否有用。
如果是,如何阻止这些攻击。 我问这个问题是因为最近关于它的帖子不多。
It is useful to prevent users from flooding the server by emitting sockets.
这完全取决于您的应用程序以及恶意客户端发送大量 emits()
的后果。如果发生这种情况时您的服务器出现故障或服务受到严重损害,那么是的,它会很有用。
how to block theses attacks
我想说这通常适用于速率限制范围,与 http 请求一样。如果你想防止过度活跃的客户端,那么你通常会在你的服务器上设置一些速率限制(这就是 Google 对其 API 所做的)并且当客户端超过速率限制时,你可以删除他们的 socket.io 连接并在一段时间内拒绝来自该用户的新连接。屡次违规,您可能会禁止他们的帐户。
您还可以将来自同一客户端的同时连接数限制为某个较小的数量(取决于您的应用程序,该数量应该是多少)以防止它们从同一客户端多次攻击您。
提高复杂度,您可以使您的速率限制基于帐户,这样如果一个帐户有多个打开的连接,您可以计算所有帐户连接的速率限制,而不是单独计算每个连接。