За да бъдат спрени опитите на различни ботове да разбият нашите пароли или да ги нулират, добра идея е да се използва „captcha“, за да се уверим, че „задкомпютърното устройство“ е човек.
Captcha е изображение на някакъв текст. Много често изображението е деформирано или „повредено“ с използването на различни щрифтове или насложени изображения, като целта е да бъдат максимално затруднени OCR програмите, използвани от ботовете.
Можем да използваме собствени скриптове за генериране на изображения или да използваме готови решения.
При безплатната регистрация се издават частен и публичен ключ. Публичният ключ е за връзката между Google и потребителите на сайта ни, а частният - за нашата връзка. Тези ключове трябва да се дефинират в свободно предоставяният от Google .php скрипт.
Наскоро от фирмата спряха някои услуги или смениха адресите, на които те са достъпни. За съжаление това не е отразено в скрипта. Разликата между съответните файлове във версия 1.10 и 1.11 е:
[root@angie-desktop ww.incs]# diff ./recaptcha-php-1.10/recaptchalib.php ./recaptcha-php-1.11/recaptchalib.php
7c7
< * http://recaptcha.net/api/getkey
---
> * https://www.google.com/recaptcha/admin/create
38,40c38,40
< define("RECAPTCHA_API_SERVER", "http://api.recaptcha.net");
< define("RECAPTCHA_API_SECURE_SERVER", "https://api-secure.recaptcha.net");
< define("RECAPTCHA_VERIFY_SERVER", "api-verify.recaptcha.net");
---
> define("RECAPTCHA_API_SERVER", "http://www.google.com/recaptcha/api");
> define("RECAPTCHA_API_SECURE_SERVER", "https://www.google.com/recaptcha/api");
> define("RECAPTCHA_VERIFY_SERVER", "www.google.com");
109c109
< die ("To use reCAPTCHA you must get an API key from <a href='http://recaptcha.net/api/getkey'>http://recaptcha.net/api/getkey</a>");
---
> die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>");
155c155
< die ("To use reCAPTCHA you must get an API key from <a href='http://recaptcha.net/api/getkey'>http://recaptcha.net/api/getkey</a>");
---
> die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>");
172c172
< $response = _recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/verify",
---
> $response = _recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify",
203c203
< return "http://recaptcha.net/api/getkey?" . _recaptcha_qsencode (array ('domain' => $domain, 'app' => $appname));
---
> return "https://www.google.com/recaptcha/admin/create?" . _recaptcha_qsencode (array ('domains' => $domain, 'app' => $appname));
233c233
< "you can do so at <a href='http://mailhide.recaptcha.net/apikey'>http://mailhide.recaptcha.net/apikey</a>");
---
> "you can do so at <a href='http://www.google.com/recaptcha/mailhide/apikey'>http://www.google.com/recaptcha/mailhide/apikey</a>");
240c240
< return "http://mailhide.recaptcha.net/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ($cryptmail);
---
> return "http://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ($cryptmail);
265c265
< * http://mailhide.recaptcha.net/apikey
---
> * http://www.google.com/recaptcha/mailhide/apikey
|
Както забелязваме, разликата е основно в адресите на услугите. Когато използваме recaptchalib.php от версия 1.11 вместо очакваната форма за автентикация получаваме празна страница.
Решението? Прилагаме съветите от страницата на reCAPTCHA - добавяме в <HEAD> секцията
<script src='https://www.google.com/recaptcha/api.js'></script>
|
и на мястото във формата, където трябва да се появи избражението
<div class="g-recaptcha" data-sitekey="my-given-site-key"></div>
|
НО използваме recaptchalib.php от по-старата, 1.10, версия.
Успех!
Добра публикация! Ето още по темата за инсталиране на reCaptcha 2 с актуални изображения https://ganmax.com/kak-se-instalira-kapcha-recaptcha-2-v-uebsayt/
ОтговорИзтриване