Hogyan készíthetünk CAPTCHAt formunkra? - Szoftver Tippek

Hogyan készíthetünk CAPTCHAt formunkra?

A CAPTCHA használata lehetővé teszi számunkra, hogy valamelyest védekezni tudjunk a spam robotok ellen, amelyek fals adatokkal és üzenetekkel halmozzák rendszerünk általában valamely formon keresztül, melyet weboldalunkon helyeztünk el. Legyen szó egy egyszerű contact formról vagy regisztrációs formról, amint népszerűbbé kezd válni az oldalunk, megjelennek a spam robotok is.

Mi is a CAPTCHA? Formok kitöltésénél láthatunk úgynevezett CAPTCHA-kat, általában egy értelmetlennek tűnő kérdés (Mi Magyarország fővárosa?), vagy egy újabb matek feladat (4+65=), amelyet meg kell válaszolnunk. Bár semmi köze például egy regisztrációs form többi mezőjéhez, mégis kulcsfontosságú eleme a formnak, hiszen segítségével megkülönböztethetjük a spam robotokat a valódi, emberi látogatóktól. A következő CAPTCHA már megszokottnak tűnik, mostanság ez a leggyakrabban használt CAPTCHA, ami sokunknak okoz bosszúságot a nehézsége miatt.

Ez a reCAPTCHA, a talán a legnehezebben kiolvasható CAPTCHA, amivel találkoztam. Egy egyszerű CAPTCHA elkészítése nem nehéz, csupán egy extra sort kell betennünk a formunkba egy matek feladattal, de ez nem a legoptimálisabb megoldás. Én személy szerint utálok órákat áldozni olyan dolgokra, amiket valaki már megcsinált és jobb, mint amit én valaha is össze tudnék hozni. A reCAPTCHA ingyenesen használható, így inkább ezt használom saját projektjeimben, mintsem egy sajátot hozzak létre. Ingyenes és egyszerű használni, kell ennél jobb?

Először is létre kell hoznunk egy reCAPTCHA kulcsot weboldalunknak:

Két kulcsot kapunk, egy privát és egy publikus kulcsot. A publikus kulcsot a kliens oldalon használjuk, mikor lekérjük a reCAPTCHA-t formunkon, a privát kulcsot pedig szerver oldalon mikor lekérjük a validálás eredményét.

Miután megvan a két kulcs, nem maradt más hátra, mint a docs oldalon követnünk az utasításokat. A reCAPTCHA nem csak PHPban használható, más technológiákra is elérhető, mint ASP.NET, JSP, Perl és elérhető olyan népszerű rendszerekre is, mint WordPress vagy PHPBB. A mi cikkünk a reCAPTCHA egy PHP formon való használatát hivatott bemutatni.

Hogy használni tudjuk a reCAPTCHA-t, le kell töltenünk a megfelelő library-t, betennünk a projekt könyvtárunkba és include-olni mindazon oldalba, ahol használni szeretnénk:

require_once('recaptchalib.php');

Ezután a következő kód segítségével lekérhetünk egy CAPTCHA-t a formunkban, a $publicKey változónak a publikus kulcsot kell tartalmaznia.

echo recaptcha_get_html($publicKey);

Ezután szerver oldalon le kell kérnünk a CAPTCHA eredményét. A következő kóddal egyszerűen lekérhetjük a $response változóba, a $privateKey változónk a privát kulcsunkat kell tartalmaznia.

$response = recaptcha_check_answer ($privateKey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);

Ez után a CAPTCHA eredményét a $response->is_valid változóban érhetjük el.

  • $response->is_valid értéke TRUE lesz, ha a felhasználó helyesen adta meg a szavakat
  • $response->is_valid értéke FALSE lesz, ha a felhasználó nem a helyes szavakat adta meg


A hozzászólások lezárultak.