我正在使用nodejs和express编写一个api,我的应用程序由openshift免费计划托管。 我想保护我的路线免受暴力侵害。例如,如果某个 IP 每秒发送超过 5 个请求,则将其阻止 5 分钟。 :)
最佳答案
没有什么可以阻止您直接在 Node.js/express 中实现这一点,但这种事情通常(而且几乎肯定更容易)通过使用 nginx
或 Apache httpd
之类的东西来处理应用程序的流量来处理。
这还有一个额外的好处,即允许您完全以非特权用户身份运行应用程序,因为 nginx(或其他)将绑定(bind)到端口 80 和 443(这需要管理/ super 用户/任何权限)而不是您的应用程序。此外,您还可以轻松获得许多其他理想的功能,例如静态内容的缓存。
nginx有a module specifically for this :
The ngx_http_limit_req_module module (0.7.21) is used to limit the request processing rate per a defined key, in particular, the processing rate of requests coming from a single IP address.
关于node.js - 保护 Express JS 服务器免遭暴力破解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32670016/