Пропускане към основното съдържание

reCAPTCHA 1.10 vs 1.11

За да бъдат спрени опитите на различни ботове да разбият нашите пароли или да ги нулират, добра идея е да се използва „captcha“, за да се уверим, че „задкомпютърното устройство“ е човек.
Captcha е изображение на някакъв текст. Много често изображението е деформирано или „повредено“ с използването на различни щрифтове или насложени изображения, като целта е да бъдат максимално затруднени OCR програмите, използвани от ботовете.
Можем да използваме собствени скриптове за генериране на изображения или да използваме готови решения.
Едно от тях е известната reCAPTCHA библиотека, предоставяна от Google.
Резултат с изображение за recaptchaВерсия 1.10 предлага изображение, сканирано от стари книги. За потребителите, които имат проблеми със зрението, се предлага звуков съпровод от стари радио шоу програми като алтернативен начин на разпознаване.
Резултат с изображение за recaptchaВерсия 1.11 предлага нова визия на изображението - трябва да се маркира чекбокс срещу съобщението „Аз не съм робот“.
При безплатната регистрация се издават частен и публичен ключ. Публичният ключ е за връзката между 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, версия.
Успех!

Коментари

  1. Добра публикация! Ето още по темата за инсталиране на reCaptcha 2 с актуални изображения https://ganmax.com/kak-se-instalira-kapcha-recaptcha-2-v-uebsayt/

    ОтговорИзтриване

Публикуване на коментар

Популярни публикации от този блог

Проектиране на кемпер с VehiPlan

Оливер Колонж (Oliver Collonge) написва през 2011 г. втора версия на безплатната програма за дизайн на кемпери VehiPlan . Според автора тя е писана и трябва да работи под Windows 2000/Vista. Пробите показват, че работи нормално и под Windows 7 и 10. След като свалите архива (zip) можете да го разархивирате в C:\Windows\Program Files (x86)\. Програмата е с френски интерфейс и затова са необходими още няколко файла - vb6fr.dll , comdlg32.ocx & mscomctl.ocx . Тези файлове се поставят в C:\Windows\SysWOW64\. Comdlg.ocx се поставя в C:\Windows\System32\. След това е необходимо да се стартира Command Prompt (cmd - като администратор) и да се изпълни командата: regsvr32 %systemroot%\system32\comdlg32.ocx Ако възникне някакъв проблем, по-нова версия на файла може да се свали от тук . След това трябва да направим препратка към C:\Program Files (x86)\VehiPlan-2-0-0\VehiPlan.exe за по-удобно стартиране, която да поставим на работния плот или друго подходящо място. В архивния файл на програмат...

Диаграма на Гант с електронна таблица

Диаграмата на Гант се състои от ленти, ориентирани успоредно на времевата ос. Всяка лента представлява отделна задача в проекта (вид работа), краищата ѝ — началния и крайния момент на изпълнението  ѝ, а дължината ѝ - продължителността на задачата. Тези диаграми могат да се използват и за други, не точно производствени, цели - например да покажат заетостта на учебна зала. Когато представянето на данните е регулярна задача може да се използва специализиран софтуер като GanttProject, но за инцидентна визуализация можем да се справим с „подръчни средства“. Сега ще покажем как с електронна таблица (LibreOffice Calc) ще визуализираме времето, за което няколко служители са работили във фирмата: Изходните данни са в няколко колони: Продължителността на трудовия стаж в дни определяме с формулата D2=C2-B2, като я копираме за всеки последващ ред. На 6-и ред съответно с функцията MIN и MAX определяме минимална и максимална дата в таблицата, а на 7-и ред - записваме начална (1.1.198...

UHS: Разширение на мрежата с евтин рутер

Свързването на два (или повече) рутера в една локална мрежа увеличава броя на достъпните портове и служи за репликиране на wi-fi сигнала за по-пълно покритие на дома/офиса. Идеята е да се ползва евтин допълнителен рутер, чрез който с минимални капиталовложения можем да покрием цялото жилище/офис със сигнал с достатъчно високо качество. Връзката между двата рутера е по UTP кабел. Използването на новия рутер като безжична входна точка („AP“) е, както се казва, ,друга бира“ и ще бъде разгледана по-късно. В нашата имплементация ще използваме ADSL рутер Pirelli DRG A124G, стандартно доставян като крайно устройство от Виваком. Не знам каква е причината, но Мрежата е пълна с обяви за продажба на тези машинки на цена 5-10 лв.  Другият вариант е да се вземе някакъв рутер от вносителите на техника втора употреба от Западна Европа, но там обикновено липсват адаптерите и изобщо няма гаранция, че рутерът „ще запали“. Разбира се, съществува вариантът да се закупи и нов, но това...