reCAPTCHA簡介
老規(guī)矩,先介紹一下什么是 reCAPTCHA
reCAPTCHA是由Google開發(fā)的一項反機器人(CAPTCHA)技術(shù)。它旨在幫助網(wǎng)站和應(yīng)用程序識別真實用戶并抵御惡意活動,如垃圾郵件、爬蟲、自動注冊等。reCAPTCHA結(jié)合了人類直覺和計算機視覺的力量,通過識別用戶是否為真實人類來進行驗證。
reCAPTCHA通過向用戶展示一個包含文本、圖像或聲音的小測試來驗證其人類身份。這個測試要求用戶執(zhí)行一些簡單的任務(wù),例如選擇相關(guān)圖片、解讀模糊文字或聽取語音提示,并在相應(yīng)的文本框中輸入答案。這種方式可以有效區(qū)分人類用戶和自動化機器人。
reCAPTCHA的一個重要特點是它能夠自適應(yīng)地提供不同難度級別的驗證,根據(jù)用戶的交互行為和風(fēng)險評估來調(diào)整難度。對于可信度較高的用戶,可能只需要點擊復(fù)選框即可完成驗證;而對于可疑的用戶,則可能需要執(zhí)行更復(fù)雜的任務(wù)。
使用reCAPTCHA可以幫助網(wǎng)站和應(yīng)用程序保護用戶隱私,防止惡意活動,并提高用戶體驗。
【總結(jié)就是一句話:圖片驗證碼不行,很容易識別,使用reCAPTCHA就是讓別人去破解谷歌的驗證碼嘛】多的不說,直接上真機實驗。主要基于 reCAPTCHA v2
完整實現(xiàn)步驟
步驟1、申請密鑰
首先,你需要前往 reCAPTCHA 網(wǎng)站 注冊一個賬戶并創(chuàng)建一個新的網(wǎng)站。
網(wǎng)址:(www.google.com/recaptcha)(www.google.com/recaptcha/admin/create)
在創(chuàng)建網(wǎng)站時,你將獲得兩個關(guān)鍵信息:
Site key(網(wǎng)站密鑰):用于在前端顯示reCAPTCHA小部件。
Secret key(秘鑰):用于在后端進行驗證。
記下這兩個密鑰,它們會在接下來的步驟中使用。
步驟2、在HTML頁面加載reCAPTCHA 腳本
加載reCAPTCHA 腳本,非常簡單,只需要加入js和HTML代碼即可。請查看以下代碼
<!--這是我的提交表單--> <form name="" method="post" action=""> <div id="html_element"></div><!--這是輸出驗證碼的地方,直接放入就可以,很簡單--> </form> <script async src="https://www.google.com/recaptcha/api.js"> <!--js代碼--> <script type="text/javascript"> grecaptcha.render('html_element', { 'sitekey' : '放我們申請的 html key', 'callback' : function(token){ } }); </script>
就像上面的一樣。html加載reCAPTCHA很簡單,放入代碼直接就出來效果了,效果圖如下:
步驟3、服務(wù)端的驗證
這里用放的php示例,驗證端不多說,直接上代碼。
<?php // 獲取reCAPTCHA響應(yīng) $recaptcha_response = $_POST['g-recaptcha-response']; // 通過Google reCAPTCHA API驗證響應(yīng) $secret_key = 'YOUR_SECRET_KEY'; // 將 YOUR_SECRET_KEY 替換為你在步驟1中獲得的秘鑰 $verify_url = 'https://www.google.com/recaptcha/api/siteverify'; $data = array( 'secret' => $secret_key, 'response' => $recaptcha_response ); $ch = curl_init($verify_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); $response = curl_exec($ch); curl_close($ch); $response_data = json_decode($response); // 驗證reCAPTCHA響應(yīng)結(jié)果 if ($response_data->success) { // reCAPTCHA驗證成功,執(zhí)行你想要的操作 echo "reCAPTCHA驗證成功!"; } else { // reCAPTCHA驗證失敗,采取相應(yīng)措施 echo "reCAPTCHA驗證失?。?quot;; } ?>
注意事項,相關(guān)問題解決方案
版本分兩個
reCAPTCHA v3 和 reCAPTCHA v2,基本上沒有什么差別.
reCAPTCHA v3和reCAPTCHA v2是Google提供的兩個版本的反機器人驗證系統(tǒng),它們在設(shè)計和使用上有一些區(qū)別。
1. 用戶交互方式:
reCAPTCHA v3:reCAPTCHA v3采用了無感知驗證的方式,它通過分析用戶在網(wǎng)站上的行為來評估其是否為機器人。這意味著用戶不需要進行任何人工操作或解決謎題,驗證過程是完全隱式的。
reCAPTCHA v2:reCAPTCHA v2則要求用戶完成識別圖片、文字或聲音的任務(wù),以證明他們是真實的人類用戶。這需要用戶與reCAPTCHA小部件進行交互,并手動解決相應(yīng)的驗證問題。
2. 驗證級別:
reCAPTCHA v3:reCAPTCHA v3不再基于傳統(tǒng)的“人類/機器人”二分法,而是引入了一個連續(xù)性的積分系統(tǒng)。它根據(jù)用戶的行為和其他信號來計算用戶的風(fēng)險分?jǐn)?shù)。你可以根據(jù)這個分?jǐn)?shù)自定義閾值,以確定哪些用戶被認(rèn)為是機器人。reCAPTCHA v3提供了更靈活的驗證級別和更精細的控制。
reCAPTCHA v2:reCAPTCHA v2是基于傳統(tǒng)的二進制驗證模型的,即將用戶劃分為“人類”或“機器人”。用戶必須成功解決相應(yīng)的驗證問題,以通過驗證。
3. 集成難度:
reCAPTCHA v3:reCAPTCHA v3的集成較為簡單,只需在網(wǎng)站中插入一個標(biāo)簽,并通過后端進行驗證。驗證結(jié)果可以通過API獲取,并根據(jù)需要進行處理。
reCAPTCHA v2:reCAPTCHA v2的集成需要在前端添加JavaScript代碼來顯示和處理reCAPTCHA小部件,并在后端進行驗證。這種交互式的驗證方式可能需要更多的開發(fā)工作和前端調(diào)整。
綜上所述,reCAPTCHA v3提供了一種無感知驗證方式,可以根據(jù)用戶行為進行智能評估,而reCAPTCHA v2則要求用戶進行手動交互以證明其為真實用戶。選擇哪個版本取決于你的具體需求和用戶體驗的考慮。
如何在國內(nèi)使用reCAPTCHA
將 www.google.com/recaptcha/ 替換為 recaptcha.net/recaptcha/ 即可, recaptcha.net 在國內(nèi)暫時沒有被屏蔽,目前還可以正常使用。文章來源:http://www.zghlxwxcb.cn/article/465.html
文章來源地址http://www.zghlxwxcb.cn/article/465.html
到此這篇關(guān)于初學(xué)者從零開始學(xué)習(xí)使用谷歌驗證碼reCAPTCHA,國內(nèi)如何使用?的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!