亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

thinkphp整合系列之極驗滑動驗證碼geetest功能

2024-05-05 00:09:41
字體:
來源:轉載
供稿:網友

給一個央企做官網,登錄模塊用的thinkphp驗證碼類。但是2019-6-10到12號,國家要求央企檢驗官網漏洞,防止黑客攻擊,正直貿易戰激烈升級時期,所以各事業單位很重視官網安全性,于是乎集團總部就委托了寧波一個專業檢測公司用專業工具檢測出,后臺驗證碼能用打碼工具暴力破解,發函要求整改。so,就有了下面的極速驗證圖形

thinkphp,極驗滑動驗證碼,geetest

thinkphp,極驗滑動驗證碼,geetest

官網:http://www.geetest.com/

一:注冊獲取key

注冊;創建應用;獲取key;

thinkphp,極驗滑動驗證碼,geetest

thinkphp,極驗滑動驗證碼,geetest

二:導入sdk

/ThinkPHP/Library/Org/Xb/GeetestLip.class.php(此處GeetestLip.class.php是我重新命名的geetest類文件,原名為class.geetestlib.php)

thinkphp,極驗滑動驗證碼,geetest

此處牽扯到thinkphp引入第三方類,我把第三方類放到Org/Util/Xb下面了,同時對該類文件加入命名空間如下,否則實例化類時找不到文件

thinkphp,極驗滑動驗證碼,geetest

三:生成驗證樣式

admin/view/public/cdtsh_log_smfyws.php

<!doctype html><html><head>  <meta charset="GBK" />  <title>網站管理系統后臺</title>  <script language="javascript" type="text/javascript" src="__JS__/jquery.js"></script>  <link rel="stylesheet" href="__CSS__/jquery.validator.css">  <script type="text/javascript" src="__JS__/jquery.validator.js"></script>  <script type="text/javascript" src="__JS__/zh_CN.js"></script>  <link href="__CSS__/admin_login.css?v20130227" rel="stylesheet" />  <script>    $(document).ready(function(){      var verifyimg = $(".verifyimg").attr("src");      $(".reloadverify").click(function(){        if( verifyimg.indexOf('?')>0){          $(".verifyimg").attr("src", verifyimg+'&random='+Math.random());        }else{          $(".verifyimg").attr("src", verifyimg.replace(//?.*$/,'')+'?'+Math.random());        }      });    });  </script></head><body><div class="wrap">  <h1><a href="javascript:;" style="height: 116px; width: 250px;">后臺管理中心</a></h1>  <form method="post" action="{:U('Admin/Public/cdtsh_log_smfyws')}">    <div class="login">      <ul>        <li>          <input class="input" id="username" name="username"type="text"          <span class="msg-box n-right" style="position:absolute; left: 248px; top: 12px; " for="username"></span>        </li>        <li>          <input class="input" name="password" type="password"          <span class="msg-box n-right" style="position:absolute;left: 248px; top: 12px;" for="password"></span>        </li>        <li>          <input class="input" id="verify" name="verify" type="text" style="width:130px;"          <div class="yanzhengma_box" id="verifyshow">  <img class="verifyimg reloadverify" style=" cursor: pointer;" align="right" src="{:U('public/verify')}"          <span class="msg-box n-right" style="position:absolute;left: 248px; top: 12px;" for="verify"></span>        </li>      </ul>      <ul>          <!--<input type="button" value="異步驗證登錄" onclick="check_verify()">-->          <!--<input type="submit" value="post提交登錄">-->          <div id="captcha"></div>      </ul>      <button type="submit" class="btn" id="subbtn">登錄</button>    </div>  </form></div><script src="http://static.geetest.com/static/tools/gt.js"></script><script>  var handler = function (captchaObj) {    // 將驗證碼加到id為captcha的元素里    captchaObj.appendTo("#captcha");   };  // 獲取驗證碼  $.get("{:U('Admin/Public/verifys')}", function(data) {    // 使用initGeetest接口    // 參數1:配置參數,與創建Geetest實例時接受的參數一致    // 參數2:回調,回調的第一個參數驗證碼對象,之后可以使用它做appendTo之類的事件    initGeetest({      gt: data.gt,      challenge: data.challenge,      product: "float", // 產品形式      offline: !data.success,      new_captcha:'true',      width:'260px',    }, handler);  },'json');</script></body></html>

四:驗證函數

/Application/Common/Common/function.php

/** * geetest檢測驗證碼 */function geetest_chcek_verify($data){  $geetest_id = "7149e2021d7938157e";  $geetest_key = "62b92039e1e9cf9455";  $geetest=new /Org/Util/Xb/GeetestLib($geetest_id,$geetest_key);  $user_id=$_SESSION['geetest']['user_id'];  $ip_address=$_SESSION['geetest']['ip_address'];  $dataa = array(    "user_id" => $user_id, # 網站用戶id    "client_type" => "web", #web:電腦上的瀏覽器;h5:手機上的瀏覽器,包括移動應用內完全內置的web_view;native:通過原生SDK植入APP應用的方式    "ip_address" => $ip_address, # 請在此處傳輸用戶請求驗證時所攜帶的IP  );  if ($_SESSION['geetest']['gtserver']==1){    $result=$geetest->success_validate($data['geetest_challenge'], $data['geetest_validate'], $data['geetest_seccode'], $dataa);    //return $result;    if ($result) {      //return 11;      return true;    } else{      //return 22;      return false;    }  }else{    if ($geetest->fail_validate($data['geetest_challenge'],$data['geetest_validate'],$data['geetest_seccode'])) {      //return 33;      return true;      }else{      //return 44;      return false;    }  }}//獲取id地址function GetIP() {  if (!empty($_SERVER["HTTP_CLIENT_IP"])) {    $cip = $_SERVER["HTTP_CLIENT_IP"];  } elseif (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) {    $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];  } elseif (!empty($_SERVER["REMOTE_ADDR"])) {    $cip = $_SERVER["REMOTE_ADDR"];  } else {    $cip = "無法獲?。?quot;;  }  return $cip;}

五:php 生成驗證碼 并 驗證

//極速驗證  public function verifys(){    //require_once dirname(dirname(dirname(__FILE__))) . '/lib/class.geetestlib.php';    //require_once dirname(dirname(__FILE__)) . '/config/config.php';    // $GtSdk = new GeetestLib(CAPTCHA_ID, PRIVATE_KEY);    $geetest_id = "7149e2021d7938157e9";    $geetest_key = "62b92039e1e9cf";    $geetest=new /Org/Util/Xb/GeetestLib($geetest_id,$geetest_key);    //dump($geetest);die;    $user_id = "test";    $data = array(      "user_id" => $user_id, # 網站用戶id      "client_type" => "web", #web:電腦上的瀏覽器;h5:手機上的瀏覽器,包括移動應用內完全內置的web_view;native:通過原生SDK植入APP應用的方式      "ip_address" => GetIP(), # 請在此處傳輸用戶請求驗證時所攜帶的IP    );    $status = $geetest->pre_process($data,1);    //dump($status);    $_SESSION['geetest']=array(      'gtserver'=>$status,      'user_id'=>$user_id,      'ip_address'=>GetIP(),      );    echo $geetest->get_response_str();  } public function cdtsh_log_smfyws() {    if ($_SESSION['userid']) {      $this->redirect('Admin/Index/Index');    } else {      if (IS_POST) {        $username = $_POST['username'];        $password = $_POST['password'];        //$geetest_challenge = $_POST['geetest_challenge'];        //$geetest_validate = $_POST['geetest_validate'];        //$geetest_seccode = $_POST['geetest_seccode'];        $data=I('post.');        if($data['geetest_challenge']=="" || $data['geetest_validate']=="" ||$data['geetest_seccode']=="" ){          $this->error('請進行圖形驗證');        }else{          //dump(geetest_chcek_verify($data));          if (geetest_chcek_verify($data)){            //echo '驗證成功';            if ($this->loginAdmin($username, $password)) {              $data = M("User")->where("username='".$username."' and password='".md5($password)."'")->find();              if ($data["status"] != 1) {                //判斷是否禁用                $this->recordLoginAdmin($_POST['username'], $_POST['password'], 0, "賬號禁用"); //記錄登錄日志                $this->error('該帳號禁用');              } else {                $save["lastlogin_time"] = time();                $save["lastlogin_ip"] = get_client_ip();                $save["login_num"] = $data["login_num"] + 1;                $status = M("user")->where(array("id" => $data['id']))->save($save);                $_SESSION['userid'] = $data['id'];                $_SESSION['user'] = $data['username'];                $_SESSION['rid'] = $data['a_Id'];                $this->recordLoginAdmin($_POST['username'], $_POST['password'], 1); //記錄登錄日志                $this->redirect('Admin/Index/Index');                //$this->success('登錄成功',U('Admin/Index/Index'));              }            } else {              $this->recordLoginAdmin($_POST['username'], $_POST['password'], 0, "賬號密碼錯誤"); //記錄登錄日志              $this->error('登錄失敗');            }          }else{            //echo '圖形驗證失敗';            $this->error('圖形驗證失敗');          }        }      } else {        $this->display();      }    }  }

到這里就結束了

總結

以上所述是小編給大家介紹的thinkphp整合系列之極驗滑動驗證碼geetest功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www.xxxx精品| 一区二区在线视频播放| 久久久之久亚州精品露出| 美女扒开尿口让男人操亚洲视频网站| 欧美自拍视频在线| 中文字幕国产精品久久| 欧美一级黑人aaaaaaa做受| 在线精品91av| 91精品久久久久久久久久久| 91爱爱小视频k| 亚洲综合在线中文字幕| 亚洲成人在线网| 日韩av有码在线| 亚洲日韩欧美视频| 欧美在线视频在线播放完整版免费观看| 亚洲国产精品人久久电影| 欧美成人一区在线| 伊人亚洲福利一区二区三区| 98午夜经典影视| 亚洲黄色av女优在线观看| 日韩在线免费高清视频| 中文字幕亚洲一区在线观看| 国外视频精品毛片| 国产97在线|亚洲| 综合久久五月天| 在线视频免费一区二区| 国产自产女人91一区在线观看| 尤物yw午夜国产精品视频| 国产激情综合五月久久| 91久久在线观看| 国模视频一区二区三区| 国产欧美精品一区二区三区介绍| 国产一区二区av| 国产成人激情视频| 国语自产精品视频在线看| 青青在线视频一区二区三区| 中文字幕亚洲欧美日韩在线不卡| 亚洲欧美中文日韩v在线观看| 亚洲欧美国产制服动漫| 精品国产自在精品国产浪潮| 久久久久久久久久久国产| 欧美激情xxxx性bbbb| 久久久国产视频91| 国产亚洲精品高潮| 中文字幕视频在线免费欧美日韩综合在线看| 国产精品爽爽爽爽爽爽在线观看| 亚洲男人天堂2019| 国产精品日韩在线一区| 亚洲女人天堂色在线7777| 美女精品视频一区| 精品国产一区二区三区久久久狼| 国产亚洲精品久久久久久777| 热久久免费国产视频| 日韩美女在线观看一区| 国产精品成人aaaaa网站| 日韩美女视频中文字幕| 日本午夜人人精品| 亚洲色图av在线| 欧美尤物巨大精品爽| 韩国国内大量揄拍精品视频| 久久久久久久久久亚洲| 欧美极度另类性三渗透| 精品久久久久久久久久久| 26uuu另类亚洲欧美日本一| 2024亚洲男人天堂| 日韩av在线播放资源| 国产精品永久免费| 久久精品视频网站| 黑人精品xxx一区| 国产精品尤物福利片在线观看| 成人h猎奇视频网站| 国产一区二区黑人欧美xxxx| 3344国产精品免费看| 亚洲毛片在线看| 成人综合网网址| 青青草99啪国产免费| 国产高清在线不卡| 国产+人+亚洲| 成人中文字幕+乱码+中文字幕| 久热在线中文字幕色999舞| 久久综合网hezyo| 亚洲国产黄色片| 亚洲免费一在线| 秋霞午夜一区二区| 日韩国产高清视频在线| 国产成人午夜视频网址| 久久久国产精彩视频美女艺术照福利| 亚洲天堂av女优| 日韩免费观看av| 国产精品久久久久久久电影| 97视频免费看| 久久av在线看| 久久久久久噜噜噜久久久精品| 国产欧美日韩精品在线观看| 欧美高清在线视频观看不卡| 一区二区三区在线播放欧美| 亚洲欧洲一区二区三区久久| 亚洲97在线观看| 亚洲自拍偷拍在线| 亚洲精品国产成人| 亚洲国产精品网站| 欧美亚洲国产日本| 国产精品一区二区久久国产| 国产欧美va欧美va香蕉在线| 久久精品亚洲国产| 日韩激情在线视频| 国产精品视频中文字幕91| 一区二区三区美女xx视频| 成人伊人精品色xxxx视频| 欧美日韩中文字幕日韩欧美| 日韩精品在线免费观看| 欧美精品一区三区| 国产精品久久久久久影视| 欧美性猛交丰臀xxxxx网站| 亚洲国产精品久久久久秋霞不卡| 亚洲石原莉奈一区二区在线观看| 国产视频久久久久久久| 国产精品久久久久久中文字| 国产精品亚洲美女av网站| 国产99视频在线观看| 欧美日韩中文在线| 精品视频在线导航| 国产午夜精品一区二区三区| 欧美激情奇米色| 国产精品女主播视频| 国内精品伊人久久| 欧美精品久久久久久久免费观看| 欧美在线影院在线视频| 日韩在线视频二区| 亚洲成人av资源网| 日韩精品视频中文在线观看| 久久久女人电视剧免费播放下载| 国产精品亚洲激情| 国产精品黄色影片导航在线观看| 国产精品扒开腿做爽爽爽男男| 亚洲激情电影中文字幕| 影音先锋日韩有码| 国产成人啪精品视频免费网| 亚洲综合在线做性| 美女啪啪无遮挡免费久久网站| 奇米一区二区三区四区久久| 精品亚洲一区二区| 久久777国产线看观看精品| 国产亚洲精品91在线| 日本精品久久久久久久| 最新亚洲国产精品| 美女啪啪无遮挡免费久久网站| 国产日本欧美一区二区三区在线| 456亚洲影院| 免费av在线一区| 热久久99这里有精品| 亚洲精品网址在线观看| 国产欧美在线视频| 欧美激情性做爰免费视频| 亚洲成人激情图| 久久久亚洲国产天美传媒修理工| 国产福利成人在线| 成人激情在线播放| 在线亚洲男人天堂| 黄网站色欧美视频| 国产亚洲精品久久久久久牛牛| 国产精品第1页| 日韩欧美精品在线观看| 色偷偷av亚洲男人的天堂|