一般設(shè)計使用者登入的驗證碼,不外乎是填寫英文數(shù)字與後端的 SESSION 是否符合分瘾,如果是符合就可以登入胎围,而驗證碼上面可以加上一些干擾圖案之類的,爲的就是防止機器人登入德召。
reCAPTCHA v3 的版本與過往 reCAPTCHA v2 最大的不同點白魂,在於網(wǎng)站使用者不再需要透過圖型驗證碼或打勾確認你是否真人,而是在網(wǎng)站後段自動紀錄使用者在網(wǎng)站中瀏覽的行為過程上岗,假設(shè)有類似在連絡(luò)表單中不斷提交重複文字之類的行為時福荸,將會將其判定為機器人。
所以 reCAPTCHA v3 是判斷你的分數(shù)肴掷,它是有 0.1 ~ 1.0 之間分數(shù)敬锐,不過建議是方式大於 0.5 以上才算是一般人,這個方式是由 Google 的方式捆等,不能由開發(fā)者可以干擾,所以它有一定的資料量讓你可以判斷才行续室。
之前介紹過 [Google reCAPTCHA「我不是機器人」爲網(wǎng)站添加安全驗證機制](https://www.prgpress.com/Google-reCAPTCHA-wo-bu-shi-ji-qi-ren-wei-wang-zhan-tian-jia-an-quan-yan-zheng-ji-zhi/)栋烤,這次來介紹 v3 的使用方法
reCAPTCHA v3 的使用方法
看過之前的 reCAPTCHA v2 所以就不再介紹它的申請
這次是 v3 爲主,跟之前一樣挺狰,有個網(wǎng)站金鑰以及密鑰
先給登入網(wǎng)站載入 api.js
<script src="https://www.google.com/recaptcha/api.js?render=[你的網(wǎng)站金鑰]"></script>
然後看登入頁面明郭,應(yīng)該有 reCAPTACHA 的圖案在右下角出現(xiàn)
然後送出去給網(wǎng)站驗證,驗證的部分改一下
$captcha = $_POST['recaptcha_response'];
$secretKey = '複製前面的密鑰';
$url = 'https://www.google.com/recaptcha/api/siteverify?secret=' . urlencode($secretKey) . '&response=' . urlencode($captcha);
$response = file_get_contents($url);
$responseKeys = json_decode($response, true);
if ($responseKeys['score'] >= 0.5) {
? // success
} else {
? // failure
}
主要是 score 的分數(shù)丰泊,只要是 >= 5.0 以上薯定,就算真人了
這樣是不是更簡單了
如何知道 Google reCAPTCHA v3 在正常運作?
直接看後端就可以知道它有沒有實際的運作瞳购,以底下的圖來看就可以看出左邊是實際有多少人使用它话侄,以及圖案顯示 7 天的使用狀況
在它的右邊是平均達到多少分數(shù),以及它的人次学赛,表示所有人都是 0.9 的分數(shù)年堆,所以全部屬於真人在登入
因爲裏面沒有可疑的流量,所以沒有可以看出來這部分的流量
只是它依然是要有點防護盏浇,譬如 SESSION['google_code'] 記住某個值变丧,只要與前端不符合的就直接讓它退出
這樣至少先讓自己的 server 過濾,而不是只有單純靠它的 server 爲主
驗證碼是要使用 v2 還是 v3 绢掰?
reCAPTCHA v3 是一項全新的技術(shù)痒蓬,不排除 v3 的方法童擎,但是絕大部分的人而言 reCAPTCHA v2 還是網(wǎng)站保護的首選,它還是看得到保護的機制是看得到的攻晒,對網(wǎng)站運作而言也比較穩(wěn)定顾复,如果有任何關(guān)於 reCAPTCHA 網(wǎng)站驗證方面的問題,也歡迎在下方留言討論吧炎辨!