从明天起,要做一个有态度的验证码

我们浏览网站经常会用到一些验证码,主要目的是防止来自暴力破解或密码穷举等方面的攻击,

但有时候验证码的出现也会影响用户的浏览体验,解决方案之一就是设置一个抛错阀值,当有恶意用户

在尝试暴力破解或穷举的时候输错次数超过阀值,便触发验证码框的弹出,这样既可以阻止攻击者的

恶意行为又可以提高合法用户的浏览体验。

那么trouble来了,我通过什么信息去标识一个用户呢?解决方案有很多种。

  • 对于已注册过的用户

已经注册过的用户肯定有自己的用户ID,而且这个ID是不会变的,那么就可以利用这个ID做全局变量,

然后设置count计数,当超过输错上限的阀值(比如3次或6次)的时候,验证码弹出。

  • 对于未注册过的用户

方法1. 未注册过的用户通常没有用户ID,这个时候可以获取用户IP地址并绑定该用户,然后设置阀值并计数,

超过上限便弹验证码框。 

方法2. 定义一个全局变量,运行几次加几次,当超过阀值的时候触发验证码弹框即可。

(以上解决方案仅供参考,如有不妥请尽管拍砖指正。)

原文地址:https://www.cnblogs.com/tdcqma/p/5742076.html