گوگل امروز یک نسخه ی بهبود یافته از Captcha را به نام “noCAPTCHA reCAPTCHA” معرفی کرد.همان گونه که از نامش پیداست این سرویس جدید عواید مفیدی برای کاربران دارد. ما با Captcha سالهاست بخاطر آن نوشتههای نفرت انگیز و بهم ریخته که وقتمان را برای خواندن میگرفت، آشنا هستیم.گوگل یک سال و نیم پیش تصمیم گرفت که این موضوع را حل کند زمانی که متوجه شد که چگونه میتوان به کامپیوترها یاد داد که چطور می شود آن Captcha سنتی را با ۹۹.۸ درصد دقت و فهم شکست داد فهمید که می تواند آن را تغییر دهد.
noCAPTCHA reCAPTCHA یک نتیجه عالی است که صحت انسان بودن شما را نسبت به نوشتن آن کلمات بهم ریخته، بسیار آسان میکند.
این نسخهٔ جدید تنها به شما یک چک باکس نشان میدهد که کنار آن نوشته است “من ربات نیستم” و زمانی که شما آن چک باکس را تیک میزنید،گوگل یک سری چک های یک پارچه توسط موتوری موسوم به “موتور آنالیز خطر” انجام میدهد تا بفهمد که شما انسان هستید یا نه.
اگر noCAPTCHA فکر کند که شما انسان هستید،کار شما به اتمام میرسد و گام بیشتر دیگری نیاز نیست؛ این واقعاً ساده و آسان است.گویی این سرویس از بهشت آماده است که برای ما که همیشه آن کلمات بهم ریخته را اشتباه وارد میکردیم، کلمات را درست وارد کند!
اگر noCAPTCHA فکر کند که شما انسان نیستید، از شما درخواست به پر کردن همان Captcha قدیمی یا کاری پیشرفت تر مانند انتخاب کردن عکس های درست از یک سری عکس، خواهد کرد. گوگل اذعان میکند که این کار برای کاربران تلفن همراه که فقط می توانند روی گزینهای کلیک کند بجای یک تصویر کوچک بهم ریخته،بسیار آسان خواهد بود.
Vinay Shet، مدیر تولید پروژه noCAPTCHA دربارهٔ این تکنولوژی میگوید :
که این سرویس فقط یک چک باکس ساده نیست بلکه در پشت صحنه به واقع فرایندی با درجه پیچیدگی بالا رخ میدهد. موتور جدید آنالیز ریسک قبل و بعد از تیک زدن شما به چک باکس، کارهای شما را برای فهم اینکه شما انسان هستید، میسنجد. این موتور از یادگیری ماشین بهره میبرد که یک سری استراتژی و یادگیری در خود دارد که یک کاربر معمولی چگونه عمل میکند تا زمانی که بعدی بیاید ما میدانیم که او به دنبال چه کاریست. او افزود که همه ی کاربران این سرویس جدید را تجربه نخواهند کرد بلکه بخشی از کاربران آن را تجربه میکنند و تعداد دیگری از آنها از همان Captcha قدیمی با آن کلمات بهم ریخته استفاده خواهند کرد تا آن موتور رفتارشان را یاد بگیرد.
توسعه دهندگانی که می خواهند تجربه ی استفاده از این سرویس جدید را به کاربران خود بدهند باید از API جدیدی هنگام پیاده سازی تولیدات خود استفاده کنند. گوگل میگوید که این سرویس جدید فقط ۳ خط کد است و کار پیاده سازی آن بسیار آسان است اگر شما اکنون از همان Captcha قدیمی استفاده میکنید!
تجربه این سرویس جدید برای پیشگامانی همچون Snapchat ،Wordpress ،Humble Bundle مورد آزمایش قرار گرفت که گوگل توانست ۶۰ درصد از ترافیک WordPress و ۸۰ درصد از ترافیک Humble Bundle را تنها در هفته گذشته در اختیار بگیرد.
آموزش نصب
1) ابتدا به به این صفحه بروید : https://www.google.com/recaptcha/admin و دو فیلد Label و Domains رو مطابق شکل زیر پر کنید و Register رو بزنید .
سپس دو سری کد رو گوگل در اختیار شما قرار میده :
Step 1: client-side integration => برای تنظیم این کد به فایل : templates/THEME/registration.tpl رفته و در خط اول کد زیر را قرار دهید :
در همین فایل به دنبال خط زیر بگردید :
و به جای آن کد دوم در قسمت client-side integration که گوگل به شما داده رو قرار دهید (برای من اینجا میشه):
Step 2: Server side integration =>
به فایل: engine/modules/register.php برید و کد زیر را پیدا کنید :
به جای آن کد زیر را قرار دهید :
دو-سه خط پایین تر کد :
را حذف و به جاش کد زیر رو قرار دهید :
و در انتها کد زیر را پیدا :
و به جاش کد :
*توجه : در کد بالا به جای : SECRET_KEY باید کدی رو که گوگل در اختیار شما قرار داده بزارید (مثل شکل زیر):
برای مثال برای من میشه :
*شما میتونید این آموزش رو برای قسمت های دیگه هم انجام بدید یا به صورت ماژول اون رو برای تمام قسمتها بنویسید من خواستم بصورت ساده توضیح بدم اصل مطلب رو بفهمید...
سپس دو سری کد رو گوگل در اختیار شما قرار میده :
Step 1: client-side integration => برای تنظیم این کد به فایل : templates/THEME/registration.tpl رفته و در خط اول کد زیر را قرار دهید :
<script src='https://www.google.com/recaptcha/api.js'></script>
در همین فایل به دنبال خط زیر بگردید :
<div>{reg_code}</div>
<div><input type="text" name="sec_code" style="width:115px" class="f_input" /></div>
و به جای آن کد دوم در قسمت client-side integration که گوگل به شما داده رو قرار دهید (برای من اینجا میشه):
<div class="g-recaptcha" data-sitekey="6LeE3_4SAAAAABwLTkr-Vg5Gz53JKjv3fWRuz1jY"></div>
Step 2: Server side integration =>
به فایل: engine/modules/register.php برید و کد زیر را پیدا کنید :
function check_reg($name, $email, $password1, $password2, $sec_code = 1, $sec_code_session = 1) {
به جای آن کد زیر را قرار دهید :
function check_reg($name, $email, $password1, $password2, $sec_code = 1) {
دو-سه خط پایین تر کد :
if( $sec_code != $sec_code_session OR !$sec_code_session ) $stop .= $lang['reg_err_19'];
را حذف و به جاش کد زیر رو قرار دهید :
if( $sec_code != 1 ) $stop .= $lang['reg_err_19'];
و در انتها کد زیر را پیدا :
if( $config['allow_sec_code'] ) { if ($config['allow_recaptcha']) { include_once ENGINE_DIR . '/classes/recaptcha.php'; $sec_code = 1; $sec_code_session = false; if ($_POST['recaptcha_response_field'] AND $_POST['recaptcha_challenge_field']) { $resp = recaptcha_check_answer ($config['recaptcha_private_key'], $_SERVER["REMOTE_ADDR"], $_POST['recaptcha_challenge_field'], $_POST['recaptcha_response_field']); if ($resp->is_valid) { $sec_code = 1; $sec_code_session = 1; } } } else { $sec_code = $_POST['sec_code']; $sec_code_session = ($_SESSION['sec_code_session'] != '') ? $_SESSION['sec_code_session'] : false; } } else { $sec_code = 1; $sec_code_session = 1; }
و به جاش کد :
$recaptchaResponse = $_POST['g-recaptcha-response']; $secretKey = "SECRET_KEY"; $request = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secretKey}&response={$recaptchaResponse}&remoteip={$_IP}"); if(!strstr($request, "true")) $sec_code = 0; else $sec_code = 1;
*توجه : در کد بالا به جای : SECRET_KEY باید کدی رو که گوگل در اختیار شما قرار داده بزارید (مثل شکل زیر):
برای مثال برای من میشه :
$secretKey = "6LeE3_4SAAAAAvxXu6CbiczGaVNWLc0aaWBtcjF";
*شما میتونید این آموزش رو برای قسمت های دیگه هم انجام بدید یا به صورت ماژول اون رو برای تمام قسمتها بنویسید من خواستم بصورت ساده توضیح بدم اصل مطلب رو بفهمید...