前言
在今天的數(shù)字時(shí)代,賬號(hào)安全是至關(guān)重要的。我們都知道密碼是保護(hù)賬號(hào)的第一道防線,但仍然有可能被破解或者盜取。為了增加額外的安全層,越來越多的網(wǎng)站和應(yīng)用程序引入了圖形驗(yàn)證碼(CAPTCHA)。
這種驗(yàn)證碼通過展示隨機(jī)生成的圖形或圖片來區(qū)分人類用戶和自動(dòng)化程序,確保只有真正的人類用戶能夠順利通過驗(yàn)證。

相關(guān)代碼
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){ // 有數(shù)據(jù)處理
// 填寫你的 AppId,在應(yīng)用管理中獲取
appId = "appId";
// 填寫你的 AppSecret,在應(yīng)用管理中獲取
appSecret = "appSecret";
var request = new kgCaptcha(appId, appSecret);
// 前端驗(yàn)證成功后頒發(fā)的 token,有效期兩分鐘
request.token = Request.Form["kgCaptchaToken"];
// 填寫應(yīng)用服務(wù)域名,在應(yīng)用管理中獲取
request.appCdn = "https://cdn6.kgcaptcha.com";
// 當(dāng)安全策略中的防控等級(jí)為3時(shí)必須填寫,一般情況下可以忽略
// 可以填寫用戶輸入的登錄帳號(hào)(如:Request.Form["username"]),可攔截同一帳號(hào)多次嘗試等行為
request.userId = "kgCaptchaDemo";
// 請(qǐng)求超時(shí)時(shí)間,秒
request.connectTimeout = 5;
// 發(fā)送驗(yàn)證請(qǐng)求
var requestResult = request.sendRequest();
if (requestResult.code == 0) {
// 驗(yàn)簽成功邏輯處理 ***
// 這里做驗(yàn)證通過后的數(shù)據(jù)處理
// 如登錄/注冊(cè)場(chǎng)景,這里通常查詢數(shù)據(jù)庫(kù)、校驗(yàn)密碼、進(jìn)行登錄或注冊(cè)等動(dòng)作處理
// 如短信場(chǎng)景,這里可以開始向用戶發(fā)送短信等動(dòng)作處理
// ...
html = "<script>alert('驗(yàn)證通過');history.back();</script>";
} else {
// 驗(yàn)簽失敗邏輯處理
html = "<script>alert(\"" + requestResult.msg + " - " + requestResult.code + "\");history.back();</script>";
}
// 輸出結(jié)果
Response.Write(html);
}
Response.Redirect("index.html");
}
}
最后
SDK開源地址:https://github.com/KgCaptcha,順便做了一個(gè)演示:https://www.kgcaptcha.com/demo/