如何处理延迟防止多次 login/register 尝试

How to deal with delay preventing multiple login/register try

我想以某种方式保护我的 login/register 表单免受多次无效登录尝试或多次用户注册(例如通过机器人)的影响。 我在 cookie 会话中设置了一些值,告诉服务器端脚本在处理请求时应用时间延迟。延迟取决于尝试次数并增加延迟。 这是做那件事的正确方法吗?请注意,如果不启用 cookie 支持,表单将无法工作。

没有。客户端可以传递他们想要的任何 cookie。攻击者可以选择不发送告诉服务器速度慢的cookie。

一个tar坑的常见实现是通过IP地址存储尝试(他们不能用TCP欺骗IP地址,因为它是基于连接的,而不是无连接的).如果失败的尝试超过阈值,则减慢速度(一个简单的 pause/sleep 即可),但不要逐渐变慢。

我们的想法是,来自同一共享 IP 地址的合法用户即使速度慢一次也不会受到太大影响(因为他们很可能会在第一次成功登录),但自动攻击变得困难,因为它大大减慢了它们的速度。尝试 5 秒之类的东西。