使用验证码拦截爬虫和机器人实践分享
背景
在很多时候我们都会遇到验证码的多种场景,不同的产品也会使用不同的登录验证方式。
在项目开发中,我将KgCaptcha应用到搜索和分页中,下面是我写的的记录。
开发过程
1、页面创建一个搜索表单
<formname=“search”method=“post”id=“searchForm”><inputtype=“hidden”name=“page”value=“”/><olclass=“word”><inputtype=“text”name=“word”value=“”maxlength=“30”/></ol><olclass=“submit”><inputtype轻创业网点我wcqh.cn=“submit”name=“”value=“”/></form>2、接入KgCaptcha
<scriptsrc=“captcha.js?appid=xxx”></script><script>kg.captcha({// 绑定弹窗按钮 button:“#captchaButton”,// 验证成功事务处理 success:function(e){// 验证成功,直接提交表单 console.log(e); $(#kgCaptchaToken).val(e[“token”]) setTimeout(()=>{ $(form[name=search]).submit()},500);},// 验证失败事务处轻创业网点我wcqh.cn理 failure:function(e){ console.log(e);},});</script><aid=“captchaButton”hidden>点击弹出验证窗口</a><inputtype=“hidden”name=“kgCaptchaToken”id=“kgCaptchaToken”value=“”/>3、弹出验证窗口按钮
将表单提交绑定到id为captchaButton的弹出验证窗口按钮,当点击搜索,表单提交时,弹出验证窗口,待用户验证成功显示搜索结果。
4、分页限制
首次搜索,需要弹出验证;
第一页和第三页之后,需要弹出验证;
其余不需要验证的页码,直接显示搜索结果; if(page==|轻创业网点我wcqh.cn| page==1|| page >3){ $(#captchaButton).click()}5、后端代码
后端根据当前页码,对提交的kgCaptchaToken进行验证,验证通过显示搜索结果;
<?phpif($_POST[page]==|| $_POST[page]==1|| $_POST[page]>3){ include “KgCaptcha/KgCaptchaSDK.php”;// 填写你的 AppId,在应用管理中获取 $appId =“xxx”;// 填写你的 AppSecret,在应用管理中获取 $appSecret =“xxx”; $request =new kgCaptcha($appId,$appSec轻创业网点我wcqh.cnret);// 填写应用服务域名,在应用管理中获取 $request->appCdn =“https://cdn.kgcaptcha.com”;// 前端验证成功后颁发的 token,有效期为两分钟 $request->token = $_POST[“kgCaptchaToken”];// 当安全策略中的防控等级为3时必须填写 $request->userId =“kgCaptchaDemo”;// 请求超时时间,秒 $request->connectTimeout =10; $requestResult = $request->sendRequest();if($requestResult->code ===0){/轻创业网点我wcqh.cn/ 验签成功逻辑处理// 输出搜索结果…}else{// 验签失败逻辑处理// 失败,提示错误并跳转页面 msgbox(“验证失败,错误信息:{$requestResult->msg}”,search.php);returnfalse;}}else{// 输出搜索结果…}?>最后
SDK开源地址:KgCaptcha (KgCaptcha) · GitHub,顺便做了一个演示:凯格行为验证码在线体验
© 版权声明
1.如需技术支持联系QQ:1339833655
2. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
3. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
4. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
5. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
6. 如有链接无法下载、失效或广告,请联系管理员处理!
7. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
8. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员!
THE END
暂无评论内容