Сегодня мы поговорим как защитить свой сайт от надоедливого спама, при помощи установки на страницы сайта механизма captcha, а конкретно об новом механизме Google reCAPTCHA v3. Как известно, это самая популярная система типа CAPTCHA, которая создана для блокировки spam ботов, то есть автоматизированных действий на разных сервисах.
Для блокировки спама на сайте мы будем использовать библиотеку для Yii2 под названием himiklab/yii2-recaptcha-widget , которая позволит нам работать как Google reCAPTCHA v3, так и с более старой второй версией Google reCAPTCHA. По сути это библиотека — обертка надо Google reCAPTCHA которая упрощает встраивание механизма CAPTCHA в ваш сайт или сервис написанный на Yii2.
Что бы установить библиотеку himiklab/yii2-recaptcha-widget будем использовать менеджер пакетов PHP composer. Для этого введем в консоли команду :
composer require "himiklab/yii2-recaptcha-widget" "*"
или добавляем строку в раздел require файла composer.json:
"himiklab/yii2-recaptcha-widget" : "*"
после чего расширение будет доступно в вашем коде написанным на yii2.
После того как вы установили библиотеку, вам надо зарегистрироваться на сайте Google reCAPTCHA и получить ключи API для вашего домена (сайта). При регистрации сайта вам будут выделены два уникальных ключа (секретный и публичный), они потребуются вам далее для конфигурации yii2-recaptcha-widget.
Далее добавляем в файл конфигурации нашего приложения (обычно это web.php) компонент:
'components' => [ 'reCaptcha' => [ 'class' => 'himiklabyii2recaptchaReCaptchaConfig', 'siteKeyV3' => 'your site key v3', 'secretV3' => 'your secret key v3', ],
Далее добавляем код валидации в нашу модель. Обычно это модель какой либо формы на вашем сайте. Например это может быть форма добавления комментариев или форма обратной связи, которые надо защитить от спама:
class MyForm extends Form { ... public $reCaptcha;
public function rules(){ return [ // ... [['reCaptcha'], himiklabyii2recaptchaReCaptchaValidator3::className()], ];}
Последний шаг это подключение reCAPTCHA к форме на Yii2:
<?= $form->field($model, 'reCaptcha')->widget(himiklabyii2recaptchaReCaptcha3::className()) ?>
На это этапе подключение reCAPTCHA на ваш сайт завершено и должно работать.
Еще по тематике Yii2
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…