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

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.1989) и

MD5 и SHA-1 хеш алгоритми

MD5 (от „message-digest“) криптографският алгоритъм е създаден през 1991 г. от проф. Роналд Райвест и за първи път е публикуван през април 1992 г. Целта му е да замени компрометирания MD4 алгоритъм, който не е достатъчно сигурен. В последствие се оказва, че и MD5 не отговаря на съвременните изисквания за сигурност и може да бъде разбит. MD5 е построен върху конструкцията на Merkle–Damgård и генерира шестнайстично число със фиксиран размер от 32 символа (128 бита) за входящо съобщение с произволна дължина. Идеята е да се създаде уникален идентификатор за съобщението, който да гарантира неговата истинност. Например: MD5("The quick brown fox jumps over the lazy dog") = 9e107d9d372bb6826bd81d3542a419d6 Дори малка промяна, напр. добавя не точка в края на входящото съобщение би трябвало да генерира нов уникален идентификатор: MD5("The quick brown fox jumps over the lazy dog . ") = e4d909c290d0fb1ca068ffaddf22cbd0 Дължината на вход