Есть сайт на Yii2. Была компания которая делала и немного курировала в плане консультаций. После начала войны компания сделала пшик.
Сейчас произошло расширение доменных имён и на новых доменах recaptchа перестала работать. "ОШИБКА:
неверный домен ключа". (*про личный кабинет google знаю, но доступа туда нет).
Попробовал её (Recaptcha) вырезать кодом - сайт вообще полностью перестал работать.
Попробовал вырезать файлами через каталог, тоже самое.
В их "админке" ни чего такого, что связано с управлением плагинами нет.
Какими методами можно деинсталлировать Recaptcha из проекта?
Тут видите, подключается js-скрипт recaptcha/api.js, и он в HTML шаблоне зашит.
И есть серверная часть скрипта:
//Получаем пост от recaptcha
$recaptcha = $_POST['g-recaptcha-response'];
//Сразу проверяем, что он не пустой
if(!empty($recaptcha)) {
//Получаем HTTP от recaptcha
$recaptcha = $_REQUEST['g-recaptcha-response'];
//Сюда пишем СЕКРЕТНЫЙ КЛЮЧ, который нам присвоил гугл
$secret = 'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ';
//Формируем utl адрес для запроса на сервер гугла
$url = "https://www.google.com/recaptcha/api/siteverify?secret=".$secret ."&response=".$recaptcha."&remoteip=".$_SERVER['REMOTE_ADDR'];
//Инициализация и настройка запроса
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16");
//Выполняем запрос и получается ответ от сервера гугл
$curlData = curl_exec($curl);
curl_close($curl);
//Ответ приходит в виде json строки, декодируем ее
$curlData = json_decode($curlData, true);
//Смотрим на результат
if($curlData['success']) {
//Сюда попадем если капча пройдена, дальше выполняем обычные
//действия(добавляем коммент или отправляем письмо) с формой
} else {
//Капча не пройдена, сообщаем пользователю, все закрываем стираем и так далее
}
}
else {
//Капча не введена, сообщаем пользователю, все закрываем стираем и так далее
}
Тут в PHP делается запрос на гугловый сервер, что пользователь прислал правильный результат решения.
Вот вам похожие части у себя на сайте нужно найти, и что-то сделать с ними.
От министров письма идут о том чтобы вообще запретить программно приём обращений с почтовых адресов из США (****@gmail.com). А тут recaptha какая-то и снова с ней возиться вы предлагаете.
Я ведь тоже не бесконечный. А создавать отдельный аккаунт для гос.организации на Google (США) и передавать его, ради плюгавой recaptcha считаю нецелесообразным.
Есть у "отечественного" Яндеск какая-то альтернатива Recaptca. Да и у меня есть самописная. От того и задачу себе поставил вырезать американскую Recaptca с гос.проекта полностью.
I.CaR Soft, есть Yandex Smartcaptcha
Но она бесплатная на 200К запросов в месяц. Все, что выше - за деньги.
Но капча нормальная. На Yii2 внедряется в ActiveForm довольно просто через собственный валидатор.
Впрочем, возможно для нее и готовое решение есть для Yii2/
Андрей, Вы повторяете мой предыдущий комментарий.
Вопрос звучит - "Как удалить Google recaptha с проекта".
А уж внедрить с точно смогу.
Внедрять всегда легче, чем "вынедрять".
I.CaR Soft, зависит от того, как и где она используется. Один из путей: удалить пакет через композер и посмотреть где вылезают ошибки. Убрать правила валидации на капчу в формах и удалить блоки ее вызова во вьюхах. Проверить контроллеры на предмет наличия в public function actions()