首先,介绍一些背景知识: 我正在为 CodeIgniter 实现一个 auth + auth 系统,这已经不是什么秘密了,到目前为止,我正在取得胜利(可以这么说)。但是我遇到了一个非常重要的挑战(大多数 auth 库完全忽略了这个挑战,但是我坚持正确地处理它) : 如何智能地处理 大规模、分布式、可变用户名的暴力攻击。
我知道所有常见的把戏:
这些只是理论上可行的想法。有 很多的垃圾想法,吹大了网站的开放(例如,琐碎的 DoS 攻击)。我想要的是更好的东西。更好的意思是:
它必须是安全的(+)对 DoS 和暴力攻击,并没有引入任何新的漏洞,可能允许一个稍微鬼鬼祟祟的机器人继续在雷达下运作
必须是自动的。如果它需要人工操作员来验证每个登录或监视可疑活动,那么在现实场景中将无法工作
它必须是可行的主流网络使用(即。可由非程序员执行的高流量、高容量和开放注册)
它不能阻碍用户体验到一个临时用户会感到烦恼或沮丧(并可能放弃网站)的地步
它不能涉及小猫,除非他们是 非常非常安全小猫
(+) 我所说的“安全”,是指至少和偏执狂用户保密密码的能力一样安全
说来听听!你会怎么做?你知道一个我没有提到的最佳实践吗(哦,请说你知道) ?我承认我确实有自己的想法(把3和4的想法结合起来) ,但是在让自己难堪之前,我还是让真正的专家来说吧; -)