-2

我们希望将密码挑战作为必需的表单字段来运行以减慢暴力破解(我们无法按源 IP 或任何其他常见元素进行过滤)。

每次客户端发送表单时,都必须解决 CPU 密集型挑战(解决它应该不超过 2 秒)对于客户端来说是可以接受的(不幸的是,验证码不是一个有效的选项,因为挑战需要完全被动/自动)。

你知道任何适合这个用例的算法吗?挑战必须是独一无二的,并且不应该是可重复使用的,以确保每个发送的表单都必须解决自己的挑战。

要求浏览器强制使用 sha+salt 哈希并将原始字符串发送到服务器一个选项吗?(我会给客户端带有有效负载的字符串的长度)

4

1 回答 1

1

您正在寻找像 CloudFlare JavaScript 反机器人挑战这样的JS挑战。

我亲自试验了这种技术,因为它看起来是减缓蛮力攻击的候选好方法。

请记住,有类似https://github.com/evyatarmeged/Humanoid这样的解决方案可以绕过上述 Cloudflare JS 挑战等挑战。

我遇到的一个问题是,对于 4 年前的移动设备而言,台式 PC 的体面挑战通常是相当艰巨的挑战。这意味着对于台式电脑来说可能是 2 秒的挑战,而对于旧的移动设备来说可能是 10 秒的挑战。出于这个原因,我们放弃了这个解决方案。

为什么要求他们解决密码学挑战?也许提供一个值并在 3 秒后要求返回该值,以认为表单有效。

已经有解决方案。在我上面提到的项目中,我们使用了AntiBot Cloud ( https://antibot.cloud/en.html )。

通过快速搜索,我还发现:

于 2020-11-04T21:37:12.487 回答