微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Node.js暴力预防

如何解决Node.js暴力预防

我在Heroku上运行了一个MERN堆栈项目,今天有人开始用很多登录请求(蛮力)淹没我的服务器。每个请求都有一个不同的IP地址,因此我不能阻止该IP。这导致网站中断。

那我该如何阻止呢?如何只允许使用我的网站登录

解决方法

您将看到许多登录页面使用的一种典型解决方案是几种需要类人交互且难以复制脚本的技术之一。

您肯定已经看过captcha systems,它要求用户解释一些图像,这些图像对于计算机进行分析是不容易或不实际的。

还有一个no-captcha system,要求用户用鼠标单击屏幕上的特定位置,并分析运动以查看它是否看起来像人。这些通常显示为单击“我不是机器人”。

许多网站(例如某些美国航空公司和许多金融网站)现在都要求用户设置“挑战”问题(例如:“您出生在哪里?”或“您最喜欢的冰淇淋口味是什么?”)和如果到达的登录请求没有为此用户预先放置的已签名Cookie(或其他熟悉的浏览器检测指标),那么在您甚至尝试登录之前都需要质询问题。

一种更为严厉的方法(可能会对最终用户产生更大的影响)是跟踪每个帐户的失败登录尝试,并在达到一定次数后开始降低响应速度(这会降低攻击者的系统速度) ),并在出现大量失败响应后,您立即使每个请求失败,并要求最终用户通过发送到其注册电子邮件地址的电子邮件确认登录请求。这给最终用户带来了不便,但是在未经最终用户确认的情况下,对任何单个帐户的猜测都超过了N个。一段时间后,您可以清除任何给定帐户的先前登录尝试编号,以释放它使其再次正常工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。