怎么下載建設(shè)銀行網(wǎng)站搜索引擎優(yōu)化案例
reCAPTCHA是Google公司推出的一項(xiàng)驗(yàn)證服務(wù),使用十分方便快捷,在國(guó)外許多網(wǎng)站上均有使用。它與許多其他的人機(jī)驗(yàn)證方式不同,它極少需要用戶進(jìn)行各種識(shí)圖驗(yàn)證。
它的使用方式如下如所示,只需勾選復(fù)選框即可通過(guò)人機(jī)驗(yàn)證。
雖然簡(jiǎn)單但效果很好,因?yàn)镚oogle會(huì)收集一些瀏覽器信息,網(wǎng)絡(luò)信息,鼠標(biāo)軌跡等信息,最后通過(guò)神經(jīng)網(wǎng)絡(luò)判斷是否為機(jī)器人。而且reCAPTCHA還可以記錄并分析使用該人機(jī)驗(yàn)證的請(qǐng)求次數(shù),并對(duì)可以的請(qǐng)求進(jìn)行統(tǒng)計(jì)和監(jiān)管。
一些準(zhǔn)備工作:
需要一個(gè)谷歌賬號(hào)沒(méi)有的先去注冊(cè)一個(gè)
reCAPTCHA官網(wǎng):https://developers.google.com/recaptcha/ (需要科學(xué)上網(wǎng))
使用reCAPTCHA需要?jiǎng)?chuàng)建密匙對(duì),創(chuàng)建密匙:https://www.google.com/recaptcha/admin
首先先創(chuàng)建密匙
進(jìn)入 https://www.google.com/recaptcha/admin
?
創(chuàng)建成功后會(huì)產(chǎn)生一對(duì)密匙
前端部署
在你需要添加reCAPTCHA的界面添加script標(biāo)簽
<script src="https://www.recaptcha.net/recaptcha/api.js"></script>
然后再你需要顯示reCAPTCHA驗(yàn)證框的地方添加
<div class="g-recaptcha" data-sitekey="你的網(wǎng)站密匙"></div>
可以設(shè)置驗(yàn)證框的主題默認(rèn)主題為light,可以添加屬性:data-theme="dark" 變?yōu)榘瞪黝}
?生成token代碼
token = grecaptcha.getResponse();
后端部署
在每次驗(yàn)證完成后會(huì)生成一個(gè)g-recaptcha-response驗(yàn)證碼,需要將這個(gè)驗(yàn)證碼和你的密匙一起發(fā)送至:https://www.recaptcha.net/recaptcha/api/siteverify (使用GET方式傳參)
傳參的格式:secret=xxxxxx&response=xxxxxxx
PHP示例代碼:
$data['secret'] = '你的密鑰';
$data['response'] = $request['token']; //前臺(tái)生成的token
$googleVerify = RequestHttpUtility::postUrl('https://www.google.com/recaptcha/api/siteverify',$data,["Content-type:application/x-www-form-urlencoded"]);
// V3返回的成功結(jié)果集
// array:5 [
// "success" => true
// "challenge_ts" => "2023-04-12T09:18:22Z"
// "hostname" => "face-mall.com"
// "score" => 0.9
// "action" => "submit"
// ]
下圖為需要傳遞的參數(shù)及其含義
secret (必須)?? ?你的secret密匙(第二個(gè)密匙)
response (必須)?? ?客戶端獲取到的 g-recaptcha-response驗(yàn)證碼
remoteip (可選)?? ?客戶端的ip
接口返回的數(shù)據(jù)是json格式
{
? "success": true|false,
? "challenge_ts": timestamp, ?// timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
? "hostname": string, ? ? ? ? // the hostname of the site where the reCAPTCHA was solved
? "error-codes": [...] ? ? ? ?// optional
}
?驗(yàn)證通過(guò)后success返回的值為“true”,如果驗(yàn)證失敗則會(huì)返回error-code,下面為error-code及其對(duì)應(yīng)原因
Error code?? ?Description
missing-input-secret?? ?The secret parameter is missing.
invalid-input-secret?? ?The secret parameter is invalid or malformed.
missing-input-response?? ?The response parameter is missing.
invalid-input-response?? ?The response parameter is invalid or malformed.
bad-request?? ?The request is invalid or malformed.
timeout-or-duplicate?? ?The response is no longer valid
請(qǐng)求統(tǒng)計(jì)
訪問(wèn):https://www.google.com/recaptcha/admin 可以查看請(qǐng)求的統(tǒng)計(jì)?
?
以上是V2版本示例,V3版本后臺(tái)一樣,只是返回的數(shù)據(jù)不太一樣,V3的多了個(gè)得分,V3前臺(tái)顯示沒(méi)有勾選框,通過(guò)得分來(lái)判斷是否為機(jī)器人