炒雞辣雞記得很久以前,那時候人與人之間還比較信任,發送短信驗證碼也沒有那麼多噁心的要求,拿來做短信轟炸機非常的方便。可是好景不長,時間到了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中會包含此次初始化的調用信息(唯一標識碼等),驗證的時候只需要將就這個參數再傳進來就行。看吧,是不是很簡單呢?