如题,想问问大家的服务都是如何实现不让人随便猜密码的。
系统层面一般搞个 fail2ban 就很轻松解决防止暴力破解的问题了,一般部署 web 业务则要自己搞。我简单想了一下用过的方案有几种:
1 、业务节点维护 IP 计数:优点是简单粗暴,缺点是节点有状态,我个人莫名其妙得了一种节点有状态就很不爽的病。
2 、另外创建一个 redis 服务,各节点共同维护计数状态:优点很多,缺点是另外多开一个服务增加了系统复杂性,部署、维护起来感觉麻烦。
3 、在 sql 里维护共同的计数状态:一般很难有网站不接关系型数据库的,所以这个可以利用已有服务算是优点。但是另一方面我想到的一个问题是,因为 sql 读写远慢于 redis,所以如果被恶意攻击 sql 压力会很容易吃满。比如一般 nginx 部署的时候可能限制比如单 IP 每分钟最大访问 300q,那如果遇到了坏东西,只需要几个 IP 就可以让 sql 读写产生明显迟滞,似乎也不太妥?
==============================
好奇生产上的最佳实践是什么,有没有什么取巧的方式?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.