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)證碼中,用戶將面對(duì)一個(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" # 請(qǐng)求超時(shí)時(shí)間,秒 request.connectTimeout = 10 # 用戶id/登錄名/手機(jī)號(hào)等信息,當(dāng)安全策略中的防控等級(jí)為3時(shí)必須填寫 request.userId = "kgCaptchaDemo" # 使用其它 WEB 框架時(shí)請(qǐng)刪除 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ā)送請(qǐng)求 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)證碼的資料請(qǐng)關(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ù)賬號(hào)安全
- certifi輕松地管理Python證書信任鏈保障網(wǎng)絡(luò)安全
相關(guān)文章
Python實(shí)現(xiàn)圖像壓縮和圖像處理詳解
隨著現(xiàn)在短視頻類越來越火,隨之而來的就是大量的視頻圖像的處理。這篇文章主要為大家介紹了Python如何一鍵實(shí)現(xiàn)圖像壓縮和圖像處理,希望對(duì)你們有所幫助2022-07-07使用Python+OpenCV進(jìn)行卡類型及16位卡號(hào)數(shù)字的OCR功能
本文將使用Python+OpenCV實(shí)現(xiàn)模板匹配算法,以自動(dòng)識(shí)別卡的類型和以及16位卡號(hào)數(shù)字,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-08-08Python對(duì)切片命名的實(shí)現(xiàn)方法
在本篇文章里我們給大家分享了關(guān)于Python對(duì)切片命名的實(shí)現(xiàn)方法的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們學(xué)習(xí)下。2018-10-10python中numpy基礎(chǔ)學(xué)習(xí)及進(jìn)行數(shù)組和矢量計(jì)算
這篇文章主要給大家介紹了python中numpy基礎(chǔ)知識(shí),以及進(jìn)行數(shù)組和矢量計(jì)算的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02分享PyCharm最新激活碼(真永久激活方法)不用每月找安裝參數(shù)或最新激活碼了
這篇文章主要介紹了分享PyCharm最新激活碼(真永久激活方法)不用每月找安裝參數(shù)或最新激活碼了一勞永逸,需要的朋友可以參考下2020-12-12Python 中 AttributeError: ‘NoneType‘ obje
Python “AttributeError: ‘NoneType’ object has no attribute” 發(fā)生在我們嘗試訪問 None 值的屬性時(shí),例如 來自不返回任何內(nèi)容的函數(shù)的賦值, 要解決該錯(cuò)誤,請(qǐng)?jiān)谠L問屬性之前更正分配,本文通過示例給大家說明錯(cuò)誤是如何發(fā)生的,感興趣的朋友一起看看吧2023-08-08