【发布时间】:2020-11-04 17:36:53
【问题描述】:
我们希望将密码挑战作为必需的表单字段来运行以减缓暴力破解(我们无法按源 IP 或任何其他常见元素进行过滤)。
每次客户端发送表单时,都必须解决 CPU 密集型挑战(解决它应该不超过 2 秒)对于客户端来说是可以接受的(不幸的是,验证码不是一个有效的选项,因为挑战需要完全被动/自动化)。
您知道适合这种用例的任何算法吗?挑战必须是唯一的,并且不能重复使用,以确保每个发送的表单都必须解决自己的挑战。
是否会要求浏览器强制使用 sha+salt 哈希并将原始字符串发送到服务器一个选项? (我会给客户端带有有效负载的字符串的长度)
【问题讨论】:
-
什么是暴力破解?表单中是否有秘密元素,例如密码?
-
登录表单被暴力破解(电子邮件和密码)
标签: javascript cryptography anti-bot