Защита от спама сайта MODX

0

<a target='_blank' href='https://kwork.ru/search?query=%D0%97%D0%B0%D1%89%D0%B8%D1%82%D0%B0&ref=7924784'>Защита</a> от <a target='_blank' href='https://kwork.ru/search?query=%D1%81%D0%BF%D0%B0%D0%BC%D0%B0&ref=7924784'>спама</a> <a target='_blank' href='https://kwork.ru/search?query=%D1%81%D0%B0%D0%B9%D1%82%D0%B0&ref=7924784'>сайта</a> MODX

Решение проблемы спама в MODX Revo с FormIt и AjaxForm без использования Google Capcha представляет собой интересную задачу, требующую творческого подхода. В этой статье мы рассмотрим несколько подходов для решения этой проблемы, используя различные методы и библиотеки.

**Подход 1: Использование CAPTCHA альтернативы**

Один из возможных решений — использование CAPTCHA альтернативы, которая не является настоящим CAPTCHA в виде изображения, но обеспечивает аналогичные функции. Одним из таких альтернатив является Recaptcha2 в виде рекапчи для человека, которая будет появляться после определенного количества форм или после периодического времени.

**Установка Recaptcha2**

Чтобы установить Recaptcha2, необходимо следовать инструкциям ниже:

1. Зарегистрируйтесь на сайте Recaptcha и получите свой ключ API.
2. Скачайте и установите расширение Revo Captcha для MODX внутри формы (читать дальше).
3. Укажите ключ API Recaptcha2 в настройках Расширения.
4. Разместите код Recaptcha2 в форме.

**Включение Recaptcha2 в форму**

Чтобы активировать Recaptcha2 в форме, необходимо добавить следующий код в форму:

* «
* `Привет !`

В итоге формой будет смотреться следующим образом:

![MODX Revo captcha v2](https://user-images.githubusercontent.com/93269057/102230475-4ad1c000-3f8f-11eb-83e3-d1421c8f141d.png)

**Подход 2: Использование Cookie CAPTCHA**

Еще одним подходом является использование Cookie CAPTCHA, который устанавливается в браузере пользователя и проверяется каждый раз, когда пользователь заполняет форму.

**Поддержка Cookie CAPTCHA**

Для поддержки Cookie CAPTCHA необходимо установить расширение Revo Captcha на MODX. Затем необходимо использовать функцию `GetRecaptcha` для загрузки ключа капчи и сохранения его в куки пользователя.

**Код Cookie CAPTCHA**

Для реализации Cookie CAPTCHA необходимо использовать следующий код:

«`php
public function form_init()
{
$captcha = GetRecaptcha();
if (!$captcha)
{
$this->form->addError(‘Внимание. Капча не вышлесена. Исправьте, пожалуйста ошибку.’);
}
else exit;
return $this->form;
}
«`

**Подход 3: Использование реального времени проверки**

Еще одним подходом является использование реального времени проверки, которая включает в себя проверку IP-адреса пользователя и отправку формы без дополнительно ключа-стоит на стороне сервера.

**Описание примера реального времени проверки**

Для реализации реального времени проверки необходимо создать модуль контроля доступа и реализовать на стороне сервера функцию реального времени проверки CAPTCHA или IP-адрес используя одну из функций контроля доступа MODX.

**Конфигурация дополнительных методов и кода**

Далее перечислены конектировки контроля доступа.

### step1

**Код OnStartPreprocess**

«`php
$defaultConfig = array(
‘api’ => ‘http://api.modx.revo.com/v1/’,
‘proxyTransport’ => ‘http://api.modx.revo.com/v2/’,
‘sslCertFile’ => ‘path/to/sslCertFile’,
‘secretKey’ => ‘your-secret-key-here’,
);

$modx->config[‘modx.revo.captcha’] = modSystemEvent::getFullSystemPath($modx->config[‘path.dot’] . ‘configs/captcha.config.php’);
$modx->config[‘modx.revo.captcha.options.key’] = $modx->config[‘modx.revo.captcha.options.’];

«`

### step2

**Код Config для ключа хэша хэш**

«`php
$config = array(
‘key’ => ‘Имя ключе значения’,
‘hash’ => ‘Хэш значения’, // hash
);
return modSystemEvent::getFullSystemPath($modx->config[‘path.dot’] . ‘configs/captcha.config.php’);

«`

### step3

**Использование контроля доступа**

1. Установите расширение на сайт MODX Revo с настройкой контроля доступа
2. Импортируйте конфиг настройки MODX и контроля доступа
3. Включите в форму элемент контроля доступа в формате PHP

В примере ниже показан пример элемента контроля доступа, который включает в себя добавление функции проверки IP-адреса и реальной времени проверки CAPTCHA.

«`php
public function form_init()
{
$captcha = GetRecaptcha();
if (!$captcha)
{
$this->form->addError(‘Внимание. Капча не вышлесена. Исправьте, пожалуйста ошибку.’);
}
else exit;
return $this->form;
}
«`

«

Примечание. Производить эти действия потребуется с умом т.е. уметь настраивать и дополнять данный процесс согласно предпочтениям и условиям деятельности каждого модератора и редактора движка.

Использование этих подходов позволит вам создать эффективную защиту от спама без необходимости использования Google Capcha или дополнительных полей в форме. Однако, стоит отметить, что эффективность каждого подхода может варьироваться в зависимости от конкретного контекста и условий использования.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

🛠 Техническая поддержка сайтов на Wordpress