如何检测并可能忽略处理 bad/hung 客户端浏览器请求
How to detect and possibly ignore processing a bad/hung client browser request
我正在开发节点 Web 应用程序。而且,在进行测试时,其中一个客户端 chrome 浏览器进入挂起状态。浏览器进入无限循环,不断下载 html 页面引用的所有 JavaScript 文件。我重新启动了网络服务器 (node.js),但是一旦网络服务器恢复在线,它继续每秒从有问题的同一浏览器接收大量请求。
显然,我继续并终止了客户端浏览器,这样问题就消失了。
但是,我很担心,一旦我的 Web 应用程序运行 live/public,如何从服务器端处理此类客户端连接问题。因为我将无法访问客户端。
有什么东西(npm module/code?)可以从我的网络服务器代码中对 handle/detect 如此糟糕的客户端连接做出最佳猜测。一旦检测到,忽略来自该特定客户端实例的任何未来请求。我知道在节点服务器内处理可能不是最好的方法。但是,至少我可以通过不渲染错误的请求来节省我的 cpu/network。
P.S。
顺便说一句,我打算用很少的预算将我的节点 Web 应用程序部署到 Heroku 上。因此,如果您知道任何 firewall/configuration 可以处理上述情况,请推荐。
我认为了解这是一个非常罕见的案例很重要。如果您的应用程序拥有非常庞大的用户群,或者出于其他原因您担心 DOS/DDOS 相关攻击,那么 Heroku provides some DDOS security for you. If you have your own server, I would suggest looking into Nginx or HAProxy as load balancers for your app combined with fail2ban. See this tutorial.
我正在开发节点 Web 应用程序。而且,在进行测试时,其中一个客户端 chrome 浏览器进入挂起状态。浏览器进入无限循环,不断下载 html 页面引用的所有 JavaScript 文件。我重新启动了网络服务器 (node.js),但是一旦网络服务器恢复在线,它继续每秒从有问题的同一浏览器接收大量请求。
显然,我继续并终止了客户端浏览器,这样问题就消失了。
但是,我很担心,一旦我的 Web 应用程序运行 live/public,如何从服务器端处理此类客户端连接问题。因为我将无法访问客户端。
有什么东西(npm module/code?)可以从我的网络服务器代码中对 handle/detect 如此糟糕的客户端连接做出最佳猜测。一旦检测到,忽略来自该特定客户端实例的任何未来请求。我知道在节点服务器内处理可能不是最好的方法。但是,至少我可以通过不渲染错误的请求来节省我的 cpu/network。
P.S。 顺便说一句,我打算用很少的预算将我的节点 Web 应用程序部署到 Heroku 上。因此,如果您知道任何 firewall/configuration 可以处理上述情况,请推荐。
我认为了解这是一个非常罕见的案例很重要。如果您的应用程序拥有非常庞大的用户群,或者出于其他原因您担心 DOS/DDOS 相关攻击,那么 Heroku provides some DDOS security for you. If you have your own server, I would suggest looking into Nginx or HAProxy as load balancers for your app combined with fail2ban. See this tutorial.