智能滑动拼图验证码使用笔记

493 阅读2分钟

缘由

在网络安全领域,滑动拼图验证码被广泛应用于验证用户身份,以防止恶意机器人和自动化攻击。本篇将介绍智能滑动拼图验证码的使用笔记,包括其原理、优势。

原理

智能滑动拼图验证码通过要求用户按照指定的路径滑动拼图碎片来验证其身份。这些拼图碎片通常由一张完整图片分割而成,用户需要正确地将其拖动到指定位置,使得所有碎片拼接成完整的图片。通过此过程,系统能够区分真实用户和机器人,因为机器人往往难以模拟准确的滑动路线。

优势

  • 提高安全性:滑动拼图验证码增加了识别和攻击的难度,有效降低了机器人的成功率。
  • 操作简单:用户只需通过简单的滑动操作完成验证,无需输入复杂的验证码文本或数字。
  • 用户友好:相比其他复杂的验证码形式,滑动拼图验证码更加直观,用户体验更好。

实现代码

using System;
using KgCaptchaSDK;
public partial class _Default : System.Web.UI.Page{
    protected void Page_Load(object sender, EventArgs e) {
        // 后端处理
        string html, appId, appSecret, Token;
        if (Request.Form.ToString().Length > 0){  // 有数据处理
            // 填写你的 AppId,在应用管理中获取
            appId = "appId";
            // 填写你的 AppSecret,在应用管理中获取
            appSecret = "appSecret";
            var request = new kgCaptcha(appId, appSecret);
            // 前端验证成功后颁发的 token,有效期两分钟
            request.token = Request.Form["kgCaptchaToken"];
            // 填写应用服务域名,在应用管理中获取
            request.appCdn = "https://cdn6.kgcaptcha.com";
            // 当安全策略中的防控等级为3时必须填写,一般情况下可以忽略
            // 可以填写用户输入的登录帐号(如:Request.Form["username"]),可拦截同一帐号多次尝试等行为
            request.userId = "kgCaptchaDemo";
            // 请求超时时间,秒
            request.connectTimeout = 5;
            // 发送验证请求
            var requestResult = request.sendRequest();
            if (requestResult.code == 0) {
                // 验签成功逻辑处理 ***
                // 这里做验证通过后的数据处理
                // 如登录/注册场景,这里通常查询数据库、校验密码、进行登录或注册等动作处理
                // 如短信场景,这里可以开始向用户发送短信等动作处理
                // ...
                html = "<script>alert('验证通过');history.back();</script>";
            } else {
                // 验签失败逻辑处理
                html = "<script>alert(\"" + requestResult.msg + " - " + requestResult.code + "\");history.back();</script>";
            }
            // 输出结果
            Response.Write(html);
        }
        Response.Redirect("index.html");
    }
}

效果展示

最后

SDK开源地址:github.com/KgCaptcha,顺便做了一个演示:www.kgcaptcha.com/demo/