亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 16
粉絲 0
評論 0
訪問量 9647
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
使用驗證碼攔截爬蟲和機器人實踐分享
原創(chuàng)
1072人瀏覽過

背景

在很多時候我們都會遇到驗證碼的多種場景,不同的產(chǎn)品也會使用不同的登錄驗證方式。

在項目開發(fā)中,我將KgCaptcha應用到搜索和分頁中,下面是我寫的的記錄。

開發(fā)過程

1、頁面創(chuàng)建一個搜索表單

  1. <form name="search" method="post" id="searchForm">
  2. <input type="hidden" name="page" value="" />
  3. <ol class="word"><input type="text" name="word" value="" maxlength="30" /></ol>
  4. <ol class="submit"><input type="submit" name="" value="" />
  5. </form>

2、接入KgCaptcha

  1. <script src="captcha.js?appid=xxx"></script>
  2. <script>
  3. kg.captcha({
  4. // 綁定彈窗按鈕
  5. button: "#captchaButton",
  6. // 驗證成功事務處理
  7. success: function (e) {
  8. // 驗證成功,直接提交表單
  9. console.log(e);
  10. $('#kgCaptchaToken').val(e["token"])
  11. setTimeout(() => {
  12. $('form[name=search]').submit()
  13. }, 500);
  14. },
  15. // 驗證失敗事務處理
  16. failure: function (e) {
  17. console.log(e);
  18. },
  19. });
  20. </script>
  21. <a id="captchaButton" hidden>點擊彈出驗證窗口</a>
  22. <input type="hidden" name="kgCaptchaToken" id="kgCaptchaToken" value=""/>

3、彈出驗證窗口按鈕

將表單提交綁定到id為captchaButton的彈出驗證窗口按鈕,當點擊搜索,表單提交時,彈出驗證窗口,待用戶驗證成功顯示搜索結果。

4、分頁限制

首次搜索,需要彈出驗證;
第一頁和第三頁之后,需要彈出驗證;
其余不需要驗證的頁碼,直接顯示搜索結果;

  1. if (page=='' || page=='1' || page > '3') {
  2. $('#captchaButton').click()
  3. }

5、后端代碼

后端根據(jù)當前頁碼,對提交的kgCaptchaToken進行驗證,驗證通過顯示搜索結果;

  1. <?php
  2. if ($_POST['page']=='' || $_POST['page']=='1' || $_POST['page'] > '3') {
  3. include "KgCaptcha/KgCaptchaSDK.php";
  4. // 填寫你的 AppId,在應用管理中獲取
  5. $appId = "xxx";
  6. // 填寫你的 AppSecret,在應用管理中獲取
  7. $appSecret = "xxx";
  8. $request = new kgCaptcha($appId, $appSecret);
  9. // 填寫應用服務域名,在應用管理中獲取
  10. $request->appCdn = "https://cdn.kgcaptcha.com";
  11. // 前端驗證成功后頒發(fā)的 token,有效期為兩分鐘
  12. $request->token = $_POST["kgCaptchaToken"];
  13. // 當安全策略中的防控等級為3時必須填寫
  14. $request->userId = "kgCaptchaDemo";
  15. // 請求超時時間,秒
  16. $request->connectTimeout = 10;
  17. $requestResult = $request->sendRequest();
  18. if ($requestResult->code === 0) {
  19. // 驗簽成功邏輯處理
  20. // 輸出搜索結果
  21. ...
  22. } else {
  23. // 驗簽失敗邏輯處理
  24. // 失敗,提示錯誤并跳轉(zhuǎn)頁面
  25. msgbox("驗證失敗,錯誤信息:{$requestResult->msg}",'search.php');
  26. return false;
  27. }
  28. } else {
  29. // 輸出搜索結果
  30. ...
  31. }
  32. ?>

最后

SDK開源地址:KgCaptcha (KgCaptcha) · GitHub,順便做了一個演示:凱格行為驗證碼在線體驗

本博文版權歸博主所有,轉(zhuǎn)載請注明地址!如有侵權、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務協(xié)議
0條評論
作者最新博文
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學習!
    全站2000+教程免費學