炒鸡辣鸡记得很久以前,那时候人与人之间还比较信任,发送短信验证码也没有那么多恶心的要求,拿来做短信轰炸机非常的方便。可是好景不长,时间到了2019年底,现在随便去找一个网站

inurl:register intitle:注册 intext:获取短信验证码

就会发现,大家现在都加了发送前验证,来判断当前发送验证码的是不是合法用户,验证非程序直接调用,过滤机器人等操作。大大增加了人们做短信轰炸机的工作成本,上大学那会儿比较风靡的短信轰炸机现在也快消失殆尽了,就是这样一个原因。

验证机器人的常见方案有:使用前置验证码,例如图片识别验证,行为验证。利用极验进行行为验证是一种比较常见的方案,即通过拉动的方式进行行为验证。

​极验官网​

理论步骤:
1、先初始化加载极验

@RequestMapping(value = Path.INIT, method = RequestMethod.GET)
@ResponseBody
public String initVerificationCode(HttpServletResponse response) {
response.setHeader("X-Frame-Options", "DENY");
GeetestLib geetestLib = new GeetestLib();
HashMap<String, String> param = new HashMap<>();
param.put("client_type", "web"); //web:电脑上的浏览器
param.put("ip_address", "unknnow"); //传输用户请求验证时所携带的IP
//进行验证预处理
int gtServerStatus = geetestLib.preProcess(param);
//初始化结果标识status(status=1表示初始化成功,status=0表示极验服务器处于宕机状态)需要用户保存,在后续二次验证时会取出并进行逻辑判断
geetestMap.put(geetestLib.gtServerStatusSessionKey, gtServerStatus);
String responseStr = geetestLib.getResponseStr();
return responseStr;
}

在responseStr中会包含此次初始化的调用信息(唯一标识码等),验证的时候只需要将就这个参数再传进来就行。看吧,是不是很简单呢?