Yii2. Установка Google reCAPTCHA v3 на сайт. Защита сайта от спама.

Сегодня мы поговорим как защитить свой сайт от надоедливого спама, при помощи установки на страницы сайта механизма captcha, а конкретно об новом механизме Google reCAPTCHA v3. Как известно, это самая популярная система типа CAPTCHA, которая создана для блокировки spam ботов, то есть автоматизированных действий на разных сервисах.

Для блокировки спама на сайте мы будем использовать библиотеку для Yii2 под названием himiklab/yii2-recaptcha-widget , которая позволит нам работать как Google reCAPTCHA v3, так и с более старой второй версией Google reCAPTCHA. По сути это библиотека — обертка надо  Google reCAPTCHA которая упрощает встраивание механизма CAPTCHA в ваш сайт или сервис написанный на Yii2.

Как установить библиотеку himiklab/yii2-recaptcha-widget?

Что бы установить библиотеку himiklab/yii2-recaptcha-widget будем использовать менеджер пакетов PHP composer. Для этого введем в консоли команду :

composer require "himiklab/yii2-recaptcha-widget" "*"

или добавляем строку в раздел require файла composer.json:

"himiklab/yii2-recaptcha-widget" : "*"

после чего расширение будет доступно в вашем коде написанным на yii2.

Как настроить библиотеку himiklab/yii2-recaptcha-widget?

После того как вы установили библиотеку, вам надо зарегистрироваться на сайте 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

Yii2. Отправляем данные из ActiveForm через AJAX

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago