python+html文字點(diǎn)選驗(yàn)證碼加固安全防線
前言
為了確保網(wǎng)絡(luò)安全,我們網(wǎng)站采用了文字點(diǎn)選驗(yàn)證碼來驗(yàn)證用戶身份。文字點(diǎn)選驗(yàn)證碼是一種簡單而有效的驗(yàn)證機(jī)制,通過要求用戶點(diǎn)擊相關(guān)圖像來區(qū)分真實(shí)用戶和機(jī)器人。它不僅可以防止惡意攻擊,還能提供用戶友好的驗(yàn)證體驗(yàn)。

優(yōu)勢
在文字點(diǎn)選驗(yàn)證碼中,用戶將面對一個(gè)包含多個(gè)圖像的界面。用戶需要根據(jù)指示點(diǎn)擊與給定條件相符的圖像。這些條件可以是點(diǎn)擊所有顯示食物的圖片,或者點(diǎn)擊所有帶有交通工具的圖像。通過這樣的驗(yàn)證方式,系統(tǒng)能夠有效區(qū)分真實(shí)用戶和機(jī)器人,提高網(wǎng)站的安全性。
文字點(diǎn)選驗(yàn)證碼的優(yōu)勢在于其簡潔性和可操作性。用戶只需點(diǎn)擊幾個(gè)圖像就能完成驗(yàn)證,而無需輸入復(fù)雜的驗(yàn)證碼。這不僅減少了用戶的繁瑣操作,還提高了用戶的滿意度。
實(shí)現(xiàn)代碼
- HTML代碼
<script src="captcha.js"></script>
<script>
kg.captcha({
// 綁定元素,驗(yàn)證框顯示區(qū)域
bind: "#captchaBox",
// 驗(yàn)證成功事務(wù)處理
success: function(e) {
console.log(e);
},
// 驗(yàn)證失敗事務(wù)處理
failure: function(e) {
console.log(e);
},
// 點(diǎn)擊刷新按鈕時(shí)觸發(fā)
refresh: function(e) {
console.log(e);
}
});
</script>
<div id="captchaBox">載入中 ...</div>- Python代碼
from wsgiref.simple_server import make_server
from KgCaptchaSDK import KgCaptcha
def start(environ, response):
# 填寫你的 AppId,在應(yīng)用管理中獲取
AppID = "AppID"
# 填寫你的 AppSecret,在應(yīng)用管理中獲取
AppSecret = "AppSecret"
request = KgCaptcha(AppID, AppSecret)
# 填寫應(yīng)用服務(wù)域名,在應(yīng)用管理中獲取
request.appCdn = "https://cdn6.kgcaptcha.com"
# 請求超時(shí)時(shí)間,秒
request.connectTimeout = 10
# 用戶id/登錄名/手機(jī)號等信息,當(dāng)安全策略中的防控等級為3時(shí)必須填寫
request.userId = "kgCaptchaDemo"
# 使用其它 WEB 框架時(shí)請刪除 request.parse,使用框架提供的方法獲取以下相關(guān)參數(shù)
parseEnviron = request.parse(environ)
# 前端驗(yàn)證成功后頒發(fā)的 token,有效期為兩分鐘
request.token = parseEnviron["post"].get("kgCaptchaToken", "") # 前端 _POST["kgCaptchaToken"]
# 客戶端IP地址
request.clientIp = parseEnviron["ip"]
# 客戶端瀏覽器信息
request.clientBrowser = parseEnviron["browser"]
# 來路域名
request.domain = parseEnviron["domain"]
# 發(fā)送請求
requestResult = request.sendRequest()
if requestResult.code == 0:
# 驗(yàn)證通過邏輯處理
html = "驗(yàn)證通過"
else:
# 驗(yàn)證失敗邏輯處理
html = f"{requestResult.msg} - {requestResult.code}"
response("200 OK", [("Content-type", "text/html; charset=utf-8")])
return [bytes(str(html), encoding="utf-8")]
httpd = make_server("0.0.0.0", 8088, start) # 設(shè)置調(diào)試端口 http://localhost:8088/
httpd.serve_forever()最后
SDK開源地址:https://github.com/KgCaptcha
順便做了一個(gè)演示:https://www.kgcaptcha.com/demo/
以上就是python+html文字點(diǎn)選驗(yàn)證碼加固安全防線的詳細(xì)內(nèi)容,更多關(guān)于python html文字點(diǎn)選驗(yàn)證碼的資料請關(guān)注腳本之家其它相關(guān)文章!
- Python?Bleach保障網(wǎng)絡(luò)安全防止網(wǎng)站受到XSS(跨站腳本)攻擊
- Python網(wǎng)絡(luò)安全格式字符串漏洞任意地址覆蓋大數(shù)字詳解
- Python庫Cerberus數(shù)據(jù)驗(yàn)證如何保證系統(tǒng)安全性正確性實(shí)例分析
- Python安全隱患最新URL解析漏洞防范措施
- Python hashlib庫數(shù)據(jù)安全加密必備指南
- Python?HMAC模塊維護(hù)數(shù)據(jù)安全技術(shù)實(shí)例探索
- python+html實(shí)現(xiàn)免費(fèi)在線行為驗(yàn)證保護(hù)賬號安全
- certifi輕松地管理Python證書信任鏈保障網(wǎng)絡(luò)安全
相關(guān)文章
Python實(shí)現(xiàn)圖像壓縮和圖像處理詳解
隨著現(xiàn)在短視頻類越來越火,隨之而來的就是大量的視頻圖像的處理。這篇文章主要為大家介紹了Python如何一鍵實(shí)現(xiàn)圖像壓縮和圖像處理,希望對你們有所幫助2022-07-07
使用Python+OpenCV進(jìn)行卡類型及16位卡號數(shù)字的OCR功能
本文將使用Python+OpenCV實(shí)現(xiàn)模板匹配算法,以自動(dòng)識別卡的類型和以及16位卡號數(shù)字,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-08-08
python中numpy基礎(chǔ)學(xué)習(xí)及進(jìn)行數(shù)組和矢量計(jì)算
這篇文章主要給大家介紹了python中numpy基礎(chǔ)知識,以及進(jìn)行數(shù)組和矢量計(jì)算的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02
分享PyCharm最新激活碼(真永久激活方法)不用每月找安裝參數(shù)或最新激活碼了
這篇文章主要介紹了分享PyCharm最新激活碼(真永久激活方法)不用每月找安裝參數(shù)或最新激活碼了一勞永逸,需要的朋友可以參考下2020-12-12
Python 中 AttributeError: ‘NoneType‘ obje
Python “AttributeError: ‘NoneType’ object has no attribute” 發(fā)生在我們嘗試訪問 None 值的屬性時(shí),例如 來自不返回任何內(nèi)容的函數(shù)的賦值, 要解決該錯(cuò)誤,請?jiān)谠L問屬性之前更正分配,本文通過示例給大家說明錯(cuò)誤是如何發(fā)生的,感興趣的朋友一起看看吧2023-08-08

