給WordPress網站登錄接入騰訊防水墻(騰訊驗證碼)驗證功能限制垃圾信息
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
wordpress現在如果沒有啥限制或者防止措施,你會發現依然每天會有很多的垃圾信息,甚至還有惡意登陸信息,出現這樣的辦法,站內也寫過文章,關于限制的,?wordpress使用代碼屏蔽討厭的垃圾評論的方式方法? 其實這樣很是有效,但這不是還是希望正規一點嘛,那就有了騰訊的防水墻,不過騰訊防水墻現在變成了驗證碼;
WordPress網站登錄接入騰訊驗證碼教程
申請地址:
https://console.cloud.tencent.com/captcha
操作步驟:
1、申請賬號并登陸
2、在APPID列表中添加“新建驗證”,驗證名稱隨意,域名是你自己的域名,場景根據實際情況選擇,我選擇的賬號場景,但是依然可以在評論場景使用。
3、確定后點擊右側的“查看詳情”,基礎配置
4、將申請得到的APPID和APP Secret Key復制到WordPress中,勾選評論開啟驗證。
申請完了就要接入代碼;
接入代碼
不多啰嗦,直接上碼,看備注修改自己的 App ID 和 App Secret Key
<?php /** * WordPress 接入騰訊防水墻,給網站登錄加上驗證功能 * 原文地址:http://arunagnihotri.com/jsjh/technology/11257.html * 老梁博客 */ function add_login_head() { echo '<script src="https://ssl.captcha.qq.com/TCaptcha.js"></script>'; echo '<style type="text/css">.login_button {line-height:38px;border-radius:3px;cursor:pointer;color:#555;background:#eee;border:2px solid #a5a5a5;font-size:14px;margin-bottom:10px;text-align:center;transition:.5s;}.login_button:hover{color:#fff;background:#444;border-color:#444;}</style>'; } function add_captcha_body(){ ?> <input type="hidden" id="wp007_tcaptcha" name="tcaptcha_007" value="" /> <input type="hidden" id="wp007_ticket" name="syz_ticket" value="" /> <input type="hidden" id="wp007_randstr" name="syz_randstr" value="" /> <!-- 修改下面的 data-appid 值 --> <div id="TencentCaptcha" data-appid="App ID" data-cbfn="callback" class="login_button">驗證</div> <script> window.callback = function(res){ if(res.ret === 0){ var but = document.getElementById("TencentCaptcha"); document.getElementById("wp007_ticket").value = res.ticket; document.getElementById("wp007_randstr").value = res.randstr; document.getElementById("wp007_tcaptcha").value = 1; but.style.cssText = "color:#fff;background:#4fb845;border-color:#4fb845;pointer-events:none"; but.innerHTML = "驗證成功"; } } </script> <?php } /** * 處理登錄二次驗證 */ function validate_tcaptcha_login($user) { $slide=$_POST['tcaptcha_007']; if($slide == ''){ return new WP_Error('broke', __("請先進行真人驗證?。?!")); } else{ $result = validate_login($_POST['syz_ticket'],$_POST['syz_randstr']); if ($result['result']) { return $user; } else{ return new WP_Error('broke', $result['message']); } } } /** * 請求服務器驗證 */ function validate_login($Ticket,$Randstr){ $AppSecretKey = "App Secret Key"; //修改App Secret Key $appid = "App ID"; //修改App ID $UserIP = $_SERVER["REMOTE_ADDR"]; $url = "https://ssl.captcha.qq.com/ticket/verify"; $params = array( "aid" => $appid, "AppSecretKey" => $AppSecretKey, "Ticket" => $Ticket, "Randstr" => $Randstr, "UserIP" => $UserIP ); $paramstring = http_build_query($params); $content = txcurl($url,$paramstring); $result = json_decode($content,true); if($result){ if($result['response'] == 1){ return array( 'result'=>1, 'message' => '' ); }else{ return array( 'result'=>0, 'message' => $result['err_msg'] ); } }else{ return array( 'result'=>0, 'message' => '請求失敗,請再試一次!' ); } } ? add_action('login_head', 'add_login_head'); add_action('login_form','add_captcha_body'); add_filter('wp_authenticate_user', 'validate_tcaptcha_login',100,1); /** * 請求接口返回內容 * @param string $url [請求的URL地址] * @param string $params [請求的參數] * @param int $ipost [是否采用POST形式] * @return string */ function txcurl($url,$params=false,$ispost=0){ $httpInfo = array(); $ch = curl_init(); curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 ); curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 ); curl_setopt( $ch, CURLOPT_TIMEOUT , 60); curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if( $ispost ) { curl_setopt( $ch , CURLOPT_POST , true ); curl_setopt( $ch , CURLOPT_POSTFIELDS , $params ); curl_setopt( $ch , CURLOPT_URL , $url ); } else { if($params){ curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); }else{ curl_setopt( $ch , CURLOPT_URL , $url); } } $response = curl_exec( $ch ); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); curl_close( $ch ); return $response; }
將上面代碼保存為新的文件 qq-captcha.php 上傳到主題目錄,然后在主題 functions.php 文件里添加require get_template_directory() . '/qq-captcha.php';
引入就可以?;蛘咧苯影焉厦娲a復制到 functions.php 文件里,方法任選其一即可;
來看看效果~~
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!
賞
支付寶贊助
微信贊助
免責聲明,若由于商用引起版權糾紛,一切責任均由使用者承擔。
您必須遵守我們的協議,如您下載該資源,行為將被視為對《免責聲明》全部內容的認可->聯系老梁投訴資源 LaoLiang.Net部分資源來自互聯網收集,僅供用于學習和交流,請勿用于商業用途。如有侵權、不妥之處,請聯系站長并出示版權證明以便刪除。
敬請諒解! 侵權刪帖/違法舉報/投稿等事物聯系郵箱:service@laoliang.net
意在交流學習,歡迎贊賞評論,如有謬誤,請聯系指正;轉載請注明出處: » 給WordPress網站登錄接入騰訊防水墻(騰訊驗證碼)驗證功能限制垃圾信息