Bot Protection

Защита от ботов

Защита от ботов

Модуль защищает витрину от ботов собственной проверкой браузера — без капчи и без сторонних сервисов. Каждый новый посетитель один раз проходит фоновую проверку: браузер решает небольшую вычислительную задачу, обычно за секунду, после чего посетитель запоминается и дальше ходит по магазину без задержек. Боты, которые не выполняют JavaScript или делают тысячи запросов с разных адресов, на этой проверке отсеиваются.

Всё работает на вашем сервере. Задачу выдаёт и проверяет сам магазин, данные о посетителях никуда не передаются. Единственные внешние запросы — раз в сутки модуль скачивает списки адресов, которые официально публикуют владельцы ИИ-ботов.

Кто проходит без проверки. Поисковые системы (Google, Яндекс, Bing и другие) — после подтверждения адреса запросом DNS, ИИ-боты — по спискам адресов их владельцев, а также уведомления платёжных систем, обмен с 1С, карта сайта, RSS и YML-фиды: исключения для них настроены сразу после установки.

Фильтр запросов. Ещё до проверки браузера модуль отклоняет явные попытки взлома — SQL-инъекции, внедрение скриптов, обращения к чужому программному обеспечению вроде /wp-login.php.

Журнал. Каждое решение модуля записывается: отклонённые запросы, результаты проверок с причиной, сбои самой защиты. На странице проверки внизу показывается короткий код — если покупатель не смог пройти, по этому коду в журнале видно, что произошло.

Модуль рассчитан на магазины, которые не могут или не готовы использовать Cloudflare. Защиты от DDoS-атак он не обещает: проверка не спасёт от перегрузки канала или сервера, но отсеивает большую часть трафика бот-сетей — парсеров, сканеров уязвимостей, накруток.

Защищается только витрина. Панель администратора, панель продавца и другие точки входа магазина не проверяются.

Модуль находится в меню Модули → Модули CS-Commerce → Защита от ботов. В боковом меню модуля три раздела: Настройки, Подключение и состояние и Журнал.

Совместимость

Модуль работает на CS-Cart и Multi-Vendor начиная с версии 4.3.1 и поддерживает редакции CS-Cart, CS-Cart Ultimate, Multi-Vendor, Multi-Vendor Plus и Multi-Vendor Ultimate.

Требования к серверу

  • PHP 7.0 или новее.
  • Расширение PHP SQLite3: настройки и данные защиты хранятся в отдельной базе SQLite, а не в базе магазина. Если расширения нет, попросите хостинг включить его (пакет php-sqlite3).
  • HTTPS на витрине. Проверка браузера использует криптографические функции, которые браузеры дают только на защищённых страницах. Защищённое соединение для витрины включается в разделе Настройки → Настройки безопасности; без него защита не включается.
  • Папка var/csc_bot_protection доступна PHP для записи и закрыта от доступа из браузера (подробнее — в разделе «Подключение и состояние»).

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

Веб-сервер

Модуль работает с Apache и nginx. Для Apache папка данных закрывается файлом .htaccess, который модуль создаёт сам. nginx файлы .htaccess не читает, поэтому на нём нужно отдельное правило в настройках сайта.

Витрины

Настройки защиты общие для всех витрин магазина: и в CS-Cart Ultimate, и в Multi-Vendor Ultimate с несколькими витринами действует один набор настроек и один журнал.

Браузеры посетителей

Проверка проходит в любом современном браузере на компьютере, планшете или телефоне. Посетителю нужен включённый JavaScript: без него задачу решить нельзя. Страница проверки показывается на языке браузера посетителя; поддерживается около двадцати языков, в том числе русский, английский, белорусский, украинский и казахский.

В случае конфликта модуля с вашей темой или другим решением обращайтесь в наш центр поддержки.

Установка модуля

После оформления и оплаты, ваш заказ будет автоматически переведен в статус Оплачен в течение считанных минут. Статус заказа Оплачен означает активацию лицензии и вам на e-mail отправляется письмо с подтверждением о получении оплаты и письмо со ссылкой на скачивание модуля. Так же модуль всегда можно скачать в нашем разделе Управление лицензиями. Для установки модуля на ваш сайт, пожалуйста, выполните следующие шаги:

  1. Скачайте последнюю версию модуля на нашем сайте в разделе "Управление лицензиями" или по ссылке, отправленной по e-mail.
  2. Пройдите в раздел Модули → Управление модулями и в меню шестерёнки выберите Ручная установка.
  3. Выберите ранее скачанный файл и завершите установку модуля.

На этом установка модуля завершена. Для перехода на страницу настроек модуля выберите установленный модуль в разделе Модули → Модули CS-Commerce

Управление модулем

Модуль находится в меню Модули → Модули CS-Commerce → Защита от ботов. В боковом меню три раздела:

  • Настройки — пять вкладок: Основные, Исключения, Проверка и лимиты, Фильтр запросов и Отладка;
  • Подключение и состояние — работает ли защита сейчас, требования к серверу, подключение к витрине, обслуживание и диагностика;
  • Журнал — отклонённые запросы, результаты проверок и сбои защиты.

Настройки хранятся не в базе магазина, а в собственной базе защиты в папке var/csc_bot_protection: защита запускается раньше, чем загружается CS-Cart, и читает их оттуда. Изменения вступают в силу сразу после сохранения.

Отдельного переключателя у защиты нет. Пока модуль включён и сервер подходит, защита работает; чтобы выключить её, отключите модуль в списке модулей — защита выключается в тот же момент.

Как работает проверка

Защита запускается первой строкой index.php витрины, раньше CS-Cart, и решает судьбу каждого запроса по порядку:

  1. Фильтр запросов. Явные попытки взлома отклоняются ответом 403 и записываются в журнал, а отправитель теряет заработанное доверие. Адреса, испорченные почтовыми программами и ботами (& вместо & в параметрах), перенаправляются на правильный адрес.
  2. Исключения. Уведомления платёжных систем, обмен с 1С, фиды и всё, что добавлено на вкладке Исключения, проходит без проверки.
  3. HTTPS. Посетители, пришедшие по HTTP, перенаправляются на HTTPS.
  4. Те, кому уже доверяем: адреса из белого списка; браузер, который недавно прошёл проверку; поисковые системы, подтверждённые запросом DNS; ИИ-боты, чей адрес есть в списке их владельца.
  5. Все остальные видят страницу проверки.

Страница проверки браузера

Страница проверки

Посетитель видит надпись «Проверяем ваш браузер, подождите…». Браузер в фоне решает вычислительную задачу (обычно около секунды на телефоне среднего класса), магазин проверяет решение, запоминает браузер подписанной cookie и адрес посетителя, и страница перезагружается уже с тем, что посетитель запрашивал. Ничего нажимать не нужно.

Если запрос выглядит подозрительно, задача становится сложнее, а посетителю нужно нажать кнопку Я человек. Подозрительность оценивается от 0 до 100 по набору признаков: пустой или ботоподобный User-Agent, отсутствие обычных заголовков браузера, частые запросы проверки с одного адреса, недавняя попытка взлома с этого адреса, одна и та же версия браузера из слишком многих сетей. Какие признаки сработали для конкретного адреса, показывает диагностика (раздел «Подключение и состояние»).

Внизу страницы показан код вида ID 1a2b3c4d. Он записывается в журнал вместе с результатом проверки: если покупатель пишет, что не может попасть в магазин, попросите этот код и найдите его в журнале.

Страница проверки отдаётся с HTTP-кодом 503. Поэтому в журналах веб-сервера много ответов 503 на index.php — это показанная проверка, а не ошибка сервера. Поисковые системы, подтверждённые по DNS, страницу проверки не видят.

Если с защитой что-то не так

Сбой защиты никогда не останавливает магазин. Если на сервере нет SQLite3, повреждена база защиты или внутри произошла ошибка, запросы проходят без проверки, а событие записывается в журнал Сбои защиты и в журнал ошибок сервера (не чаще раза в пять минут по каждой причине).

Подключение и состояние

Страница Подключение и состояние показывает, работает ли защита прямо сейчас, и помогает исправить то, что мешает ей работать. Вверху — итог: Защита работает, Защита выключена (с пояснением, что исправить) или Защита не подключена.

Подключение и состояние

Что делает установка и удаление

При установке модуль сам создаёт папку данных var/csc_bot_protection с базой настроек и секретными ключами (у каждого магазина свои) и добавляет в index.php витрины строку, которая запускает защиту. Если что-то из этого не получилось, установка всё равно завершается, а после неё панель администратора показывает предупреждение со ссылкой на эту страницу.

При удалении модуля защита выключается, строка убирается из index.php, и файл становится таким же, каким был до установки. Папка данных удаляется вместе с настройками и журналами.

Требования к серверу

Список проверок с отметками: PHP 7.0 или новее, расширение SQLite3, папка данных доступна для записи, база настроек на месте, витрина работает по HTTPS. Пока хотя бы один из этих пунктов отмечен красным, защита выключена. У каждого пункта написано, что сделать; после исправления нажмите Проверить и исправить.

Ещё два пункта на работу защиты не влияют, но важны:

  • Папка данных закрыта от доступа из браузера. В папке лежат секретные ключи защиты и адреса посетителей. Модуль проверяет это запросом к самому себе. На nginx добавьте в настройки сайта правило location ^~ /var/csc_bot_protection/ { deny all; } — файл .htaccess nginx не читает.
  • Адреса посетителей определяются. Если перед магазином стоит обратный прокси или CDN, который не передаёт адрес посетителя, все посетители выглядят как один адрес. Как это исправить — в разделе «Типичные проблемы».

Подключение к витрине

Защита запускается строкой в начале файла index.php в корне магазина:

/* csc_bot_protection:begin */ if (is_file(dirname(__FILE__) . '/app/addons/csc_bot_protection/core/loader.php')) { include dirname(__FILE__) . '/app/addons/csc_bot_protection/core/loader.php'; } /* csc_bot_protection:end */

Строка безопасна: если модуль удалить, она ничего не делает. Перед каждым изменением index.php модуль сохраняет копию файла в папке данных (index.php.backup) и проверяет, что после правки файл остался корректным PHP, иначе возвращает прежний.

Если у PHP нет права записи в index.php, страница предлагает подключить защиту вручную одним из двух способов:

  1. добавить показанную строку в index.php сразу после первой строки <?php;
  2. без правки файла — указать полный путь к loader.php в настройке PHP auto_prepend_file (в php.ini, .user.ini или в панели хостинга). При этом способе защищается только index.php витрины, а строка не пропадает при обновлении CS-Cart.

Панель администратора не затрагивается ни при каком способе подключения.

Проверить и исправить

Кнопка повторяет шаги установки: создаёт папку данных и базу, если их нет, и восстанавливает строку в index.php. Существующие настройки сохраняются. Если база настроек повреждена, модуль откладывает её в сторону и создаёт новую с настройками по умолчанию.

Обслуживание

Устаревшие записи (истёкшие доверия, лимиты, использованные задачи) и слишком длинные журналы чистятся автоматически раз в сутки, когда кто-то работает в панели администратора. На посещаемом магазине лучше добавить очистку в расписание сервера (cron) — команда показана на странице, например:

php /path/to/store/app/addons/csc_bot_protection/core/cleanup.php

Раз в сутки достаточно. Кнопка Удалить устаревшие записи сейчас выполняет ту же очистку немедленно.

Диагностика

Если настоящий посетитель не может пройти проверку, откройте диагностический адрес, показанный на странице, — он выглядит как https://ваш-магазин/index.php?csc_bp=debug&token=…. Отчёт показывает, как защита оценивает ваш браузер: состояние базы, cookie и белого списка, подтверждение бота, уровень подозрительности со всеми сработавшими признаками, сложность задачи и последние записи журнала для этого адреса. Чтобы посмотреть другой адрес, добавьте &ip=1.2.3.4. Диагностика ничего не меняет.

В диагностическом адресе есть секретный ключ. Не передавайте его посторонним: без ключа адрес отвечает 404.

Основные настройки модуля

Вкладка Основные страницы Настройки.

Вкладка Основные

  • Помнить проверенного посетителя, дней — сколько дней посетитель, прошедший проверку, не проверяется повторно. По умолчанию 7.
  • Сколько сетей допускается для одного проверенного браузера — посетитель может менять сети (дом, мобильный интернет, офис). Если один и тот же проверенный браузер приходит из большего числа сетей, он проверяется заново: так одну пройденную проверку нельзя раздать целой сети ботов. По умолчанию 10.
  • Перенаправлять посетителей на HTTPS — проверка браузера работает только по HTTPS. Не выключайте, если ваш веб-сервер сам не перенаправляет всех посетителей на HTTPS. По умолчанию включено.
  • Магазин работает за прокси или CDN — брать адрес посетителя из заголовков X-Forwarded-For / X-Real-IP. Включайте, только если весь трафик идёт через ваш прокси или CDN, который сам выставляет эти заголовки; иначе посетитель сможет подделать свой адрес. По умолчанию выключено.
Защита работает только на витрине, панель администратора не проверяется. Чтобы выключить защиту, отключите модуль.

Исключения

Вкладка Исключения определяет, какие запросы проходят без проверки браузера.

Вкладка Исключения

Запросы, попавшие под исключение, не проверяются совсем. Добавляйте только то, что не может пройти проверку браузера: уведомления платёжных систем, вебхуки, свои серверы. Исключение не удостоверяет отправителя — подписи платёжных уведомлений по-прежнему должны проверяться.

Контроллеры, которые не проверяются

По одному в строке — часть параметра dispatch до точки. Параметр учитывается и в адресе, и в теле POST-запроса. После установки в списке уже есть:

  • payment_notification — уведомления всех встроенных способов оплаты CS-Cart;
  • paypal_checkout — вебхуки PayPal;
  • yandex_checkout и yandex_checkout_for_marketplaces — уведомления ЮKassa;
  • tinkoff — уведомления Тинькофф Эквайринга;
  • exim_1c — обмен данными с 1С;
  • em_subscribers_webhook — вебхуки сервиса email-рассылок;
  • rss — RSS-лента;
  • xmlsitemap — карта сайта;
  • yandex — YML-фид модуля выгрузки товаров.

Свой платёжный модуль или задание по расписанию. Всё, что обращается к витрине с другого сервера и не выполняет JavaScript, нужно добавить в исключения, иначе запрос получит страницу проверки и не выполнится. Посмотрите адрес, на который приходит уведомление или который вызывает cron: если в нём есть dispatch=my_payment.notify, добавьте в этот список my_payment. Типичный пример — задания cron вида wget https://магазин/index.php?dispatch=my_addon.cron: без исключения они молча перестают выполняться.

Фрагменты адреса, которые не проверяются

Для обращений без параметра dispatch — например, когда платёжная система присылает уведомление на ЧПУ-адрес вроде /yoomoney/check_payment. По одному в строке; фрагмент ищется только в пути адреса, параметры не учитываются. Используйте длинные, трудно угадываемые фрагменты вроде /webhooks/pay-a1b2c3 — короткий, как /api, откроет гораздо больше, чем нужно. По умолчанию список пуст.

Адреса, которым всегда доверяем

По одному в строке: IP-адрес или диапазон IPv4 вида 198.51.100.0/24. Ваш офис, сервисы мониторинга, свои серверы. Записи в неверном формате не сохраняются — после сохранения модуль покажет, какие именно.

Доверять запросам с самого сервера

Задания по расписанию, выгрузки и проверки, которые обращаются к магазину по его адресу с того же сервера, пропускаются без проверки. По умолчанию включено. Запрос с адреса сервера не считается своим, если в нём есть заголовки прокси, которые модулю не велено читать, — так выглядят посетители за ненастроенным прокси.

Поисковые системы и ИИ-боты

Поисковые системы и боты, проверяемые по DNS — по одному в строке: фрагмент User-Agent, затем «=» и через запятую домены, которым должен принадлежать адрес бота, так, как их документирует поисковая система. Пример: googlebot = googlebot.com, google.com. Адрес проверяется двойным запросом DNS, поэтому прикрыться одним названием нельзя. После установки в списке Google (все роботы, включая AdsBot и Storebot), Bing, все роботы Яндекса, Mail.ru, Yahoo, DuckDuckGo, Apple, Baidu, Sogou, Naver, Seznam, Petal, а также Amazonbot и Common Crawl.

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

Пропускать подтверждённых ИИ-ботов — пропускает ИИ-ботов из следующего списка, если их адрес подтверждён списком, который официально публикует владелец бота. По умолчанию включено.

ИИ-боты, проверяемые по опубликованному списку адресов — по одному в строке: фрагмент User-Agent, затем «=» и https-адрес JSON-файла с адресами бота, который публикует его владелец. Пример: gptbot = https://openai.com/gptbot.json. Файл скачивается раз в сутки. После установки в списке GPTBot, OAI-SearchBot и PerplexityBot.

Боты, которым доверяем по названию, без подтверждения — по одному в строке: фрагмент User-Agent, например ClaudeBot. Это название может подставить в запрос кто угодно и пройти без проверки, поэтому оставьте список пустым, если не готовы на такой риск. По умолчанию пуст.

Проверка и лимиты

Вкладка Проверка и лимиты задаёт, насколько трудна задача для браузера и сколько проверок допускается с одного адреса. Значения по умолчанию подходят большинству магазинов.

Вкладка Проверка и лимиты

Сложность проверки

  • Сложность для обычного посетителя — чем больше число, тем дольше браузер решает задачу. 100000 (по умолчанию) — около секунды на телефоне среднего класса.
  • Сложность для подозрительного посетителя — применяется, когда запрос похож на бота. Сложность растёт от обычной до этой по мере роста подозрительности. По умолчанию 1000000.
  • Просить нажать кнопку при подозрительности от — подозрительность оценивается от 0 до 100; начиная с этого уровня посетитель должен нажать кнопку Я человек, а не проверяется в фоне. По умолчанию 70.
  • Время на решение задачи, секунд — столько действует задача, выданная браузеру. По умолчанию 120.

Лимиты на один адрес

  • Проверок за период, не больше — сколько раз один IP-адрес может запросить проверку за период. Дальнейшие запросы отклоняются, пока период не истечёт. По умолчанию 20.
  • Период, секунд — по умолчанию 60.

Сети ботов: один браузер из многих сетей

Сеть ботов за сменными прокси с каждого отдельного адреса выглядит безупречно, но одна и та же версия браузера проходит проверку из сотен сетей. Модуль считает, из скольких сетей проходит проверку каждая версия браузера, и при превышении порога считает её подозрительной для всех.

  • Сколько сетей допускается для одной версии браузера — по умолчанию 100.
  • Период, секунд — за который считаются сети; по умолчанию 86400 (сутки).
  • Насколько повышать подозрительность — от 0 до 100. При значении 70 (по умолчанию) таким посетителям придётся нажать кнопку и решить более сложную задачу.
Популярной версией настоящего браузера тоже пользуются многие посетители. На посещаемом магазине свежая версия Chrome под Windows за сутки приходит из десятков сетей, поэтому порог должен быть выше: если покупатели начали массово видеть кнопку Я человек, проверьте в журнале результатов проверок, не сработал ли этот признак, и увеличьте значение.

Фильтр запросов

Перед проверкой браузера каждый запрос к витрине проверяется на явные попытки взлома: обращения к чужому программному обеспечению, SQL-инъекции и внедрение скриптов в адресах. Такие запросы отклоняются ответом 403 и записываются в журнал Отклонённые запросы; отправитель теряет заработанное ранее доверие и должен пройти проверку заново, нажав кнопку. Сканеры уязвимостей получают дешёвый отказ, а не страницу с задачей.

Вкладка Фильтр запросов

Настройки вкладки

  • Отклонять подозрительные запросы — выключите, чтобы такие запросы только записывались в журнал, но не отклонялись. Это полезно первые дни после установки, чтобы убедиться, что под фильтр не попадает ничего нужного. По умолчанию включено.
  • Наибольшая длина параметра в адресе, символов — запросы с более длинным параметром считаются попыткой взлома. По умолчанию 2000.
  • Держать адрес под подозрением после попытки взлома, секунд — подозрение снимается раньше, как только посетитель пройдёт проверку, нажав кнопку. По умолчанию 86400 (сутки).
  • Насколько повышать подозрительность после попытки взлома — от 0 до 100. При значении 70 (по умолчанию) посетителю придётся нажать кнопку и решить более сложную задачу.

Что проверяет фильтр

  • путь, параметры адреса, cookie и User-Agent — на SQL-инъекции, внедрение скриптов и PHP-кода, выход за пределы папки (../), слишком длинные параметры;
  • обращения к адресам чужих программ и служебных файлов (WordPress, phpMyAdmin, Adminer, cgi-bin, папки .git, файлы .env и .htaccess) — для запросов любого типа, включая POST;
  • параметр фильтров каталога features_hash — в настоящем фильтре он состоит только из букв, цифр, дефисов и подчёркиваний.

POST-запросы (формы оформления заказа, отзывы, обращения) на инъекции не проверяются: в них покупатели пишут произвольный текст, и проверка давала бы ложные срабатывания. Для них работает только проверка обращений к чужим программам.

Запросы к несуществующим файлам .php отклоняются, только если веб-сервер передаёт их в index.php. В обычной настройке nginx и Apache сами отвечают на них 404, и до модуля такие запросы не доходят.

Отладка

Вкладка Отладка.

  • Записывать результат каждой проверки в журнал — каждая пройденная или не пройденная проверка с причиной попадает в журнал Результаты проверок. Помогает выяснить, почему настоящий посетитель не смог пройти. На очень посещаемом магазине можно выключить. По умолчанию включено; журнал ограничен по размеру и обрезается при очистке.
  • Проверять всех при каждом заходе (режим теста) — только для проверки работы: каждый посетитель, включая уже проверенных и поисковые системы, видит проверку на каждой странице. После пройденной проверки запрошенная страница открывается, а через минуту проверка покажется снова. По умолчанию выключено.
Не оставляйте режим теста включённым: в нём проверку видят и поисковые системы, а это мешает индексации.

Журнал

Страница Журнал показывает три журнала, новые записи сверху. Над каждым есть поиск по IP-адресу или любому тексту — например, по коду проверки или названию правила.

Отклонённые запросы

Попытки взлома, остановленные фильтром запросов: время, адрес, сработавшее правило и где оно сработало (адрес, параметры, cookie, User-Agent), запрошенный адрес.

Журнал: отклонённые запросы

Результаты проверок

Пройденные и не пройденные проверки браузера с причиной: выдана задача (с уровнем подозрительности и сработавшими признаками), решение принято, решение отклонено, превышен лимит запросов. В каждой записи есть код проверки — тот же, что посетитель видит внизу страницы проверки (ID 1a2b3c4d). Если покупатель пишет, что не может попасть в магазин, попросите этот код и введите его в поиск: запись покажет, что именно произошло.

Журнал: результаты проверок

Сбои защиты

Моменты, когда защита не смогла работать и пропускала запросы без проверки: нет расширения SQLite3, база недоступна или повреждена, внутренняя ошибка. Одна и та же причина записывается не чаще раза в пять минут. Пустой журнал — хороший знак.

Время записей показывается в часовом поясе магазина. Журналы ограничены по размеру: при ежедневной очистке из них остаются последние строки.

Обновление CS-Cart

Обновление CS-Cart заменяет файл index.php, и строка, которая запускает защиту, пропадает. Магазин продолжает работать, но посетители больше не проверяются.

Модуль следит за этим сам: раз в минуту, пока кто-то работает в панели администратора, он проверяет index.php. Если строки нет, в панели появляется предупреждение «Защита от ботов не работает: из index.php пропала её строка» со ссылкой Восстановить подключение. Ссылка ведёт на страницу Подключение и состояние; нажмите там Проверить и исправить — строка вернётся, настройки сохранятся.

Центр обновлений CS-Cart покажет index.php как изменённый файл — это ожидаемо: изменение и есть строка защиты.

Если вы не хотите, чтобы модуль правил index.php, подключите защиту через настройку PHP auto_prepend_file (см. «Подключение и состояние»): такое подключение обновление CS-Cart не затрагивает.

Типичные проблемы

В журналах сервера много ответов 503

Это показанная страница проверки, а не ошибка: она отдаётся с кодом 503, чтобы поисковые системы и кэши не сохраняли её вместо настоящей страницы. Ботов, которые не прошли проверку, обычно гораздо больше, чем покупателей, поэтому ответов 503 на index.php может быть больше, чем ответов 200. Прорыв защиты выглядел бы как ответ 200 на запрос бота.

Магазин за Cloudflare или обратным прокси

Если перед магазином стоит Cloudflare, nginx в роли обратного прокси или другой CDN, PHP видит не адрес посетителя, а адрес прокси. Тогда у всех посетителей один адрес, один белый список и один лимит проверок. Страница Подключение и состояние предупреждает об этом. Исправить можно одним из двух способов:

  • восстановить адрес посетителя на уровне веб-сервера — для Cloudflare в nginx это set_real_ip_from с диапазонами адресов Cloudflare и real_ip_header CF-Connecting-IP; модуль тогда сразу видит настоящий адрес;
  • или включить на вкладке Основные настройку Магазин работает за прокси или CDN — только если весь трафик идёт через ваш прокси, иначе посетители смогут подделать свой адрес.

Не приходят уведомления об оплате

Встроенные способы оплаты CS-Cart, PayPal, ЮKassa и Тинькофф работают сразу. Если платёжный модуль присылает уведомления на свой контроллер или ЧПУ-адрес, добавьте его на вкладке Исключения: контроллер — в список контроллеров, адрес без dispatch — в список фрагментов адреса. Найти нужный адрес помогает журнал веб-сервера: уведомление, получившее страницу проверки, видно там как ответ 503 на POST-запрос с адреса платёжной системы.

Перестали выполняться задания по расписанию

Задания cron, которые вызывают витрину по адресу (wget, curl), не умеют проходить проверку. Если задание запускается на том же сервере, его пропускает настройка Доверять запросам с самого сервера. Если с другого сервера или настройка выключена, добавьте контроллер из адреса задания в исключения. Задания, запущенные командой php index.php … из консоли, защита не проверяет.

Настоящий посетитель не может пройти

  1. Попросите код со страницы проверки (ID …) и найдите его в журнале Результаты проверок.
  2. Если причина в превышенном лимите или высокой подозрительности, откройте диагностику с &ip=адрес_посетителя: она покажет все сработавшие признаки.
  3. Если посетитель работает из офиса или через корпоративный прокси, добавьте его адрес в Адреса, которым всегда доверяем.
  4. Если кнопку Я человек начали видеть многие покупатели с одинаковым браузером, увеличьте Сколько сетей допускается для одной версии браузера на вкладке Проверка и лимиты.

Посетитель с выключенным JavaScript пройти проверку не сможет. В очень старом браузере, где нет нужных функций, страница предложит открыть сайт в современном браузере.

Защита выключена, хотя модуль включён

Откройте Подключение и состояние: красным отмечено то, что мешает. Чаще всего это отсутствие HTTPS на витрине, отсутствие расширения SQLite3 или пропавшая после обновления CS-Cart строка в index.php. Защита также выключается, если не удаётся подтвердить лицензию модуля для домена; временная недоступность сервера лицензий защиту не выключает.

Обновление модуля

Для того, чтобы иметь доступ к обновлениям модуля, у вас должен быть активный период подписки на обновления. При истекшем периоде подписки, вам будут доступны только обновления, выпущенные до даты истечения вашей подписки. Продлить подписку на обновления можно в разделе "Управление лицензиями" на нашем сайте. 

Модуль поддерживает поставку обновлений через Центр обновлений CS-Cart. О выходе новых версий модуля вас оповестит встроенный Центр уведомлений Cart (колокольчик). Обновление модуля с помощью Центра обновлений позволит без потерь настроек данных модуля произвести переход на более новую версию модуля.

Непосредственно перед обновлением, крайне рекомендуется делать полный бэкап сайта (базы данных и файлов) вашего магазина средствами сервера или хостинга.

Обновление модуля через Центр обновлений:

  1. В верхнем меню пройдите в раздел Администрирование → Центр обновлений;
  2. В меню шестеренки нажмите "Проверить доступные обновления"
  3. Cреди списка доступных обновлений найдите нужное и нажмите кнопку Обновить;
  4. Следуйте всем инструкциям, которые будут показаны при процедуре обновления;
  5. Рекомендуется произвести очистку кэша CS-Cart после завершения устанвоки обновлений удалением папки var/cache на вашем сервере или добавлением в адресную строку параметра ctpl (прмиер: https://domain.com/admin.php?ctpl).

Переустановка модуля удалением:

Переустановка модуля означает удаление настроек и данных модуля. Переустановка позволит получить чистую установку модуля. Для переустановки модуля с сохранением настроек и данных, пожалуйста, обратитесь в наш Центр поддержки для оказания такой услуги. 

Для полной переустановки модуля без сохранения данных выполните следующие шаги:

  1. Пройдите в раздел Модули → Управление модулями и найдите старый установленный модуль.
  2. Нажмите в меню шестеренки модуля кнопку удалить.
  3. Скачайте последнюю версию модуля на нашем сайте в разделе "Управление лицензиями".
  4. Пройдите в раздел Модули → Управление модулями и в меню шестеренки выберите Ручная установка.
  5. Выберите ранее скачанный файл и завершите установку модуля.

Техническая поддержка

Техническая поддержка модуля уже включена в его стоимость. Прежде чем обращаться в центр поддержки, пожалуйста, убедитесь что вы используете последнюю выпущенную версию модуля. Старые версии  модуля не обслуживаются технической поддержкой.

Для того, чтобы воспользоваться нашей технической поддержкой, выполните следующие шаги:

  1. На нашем сайте центра поддержки https://helpdesk.cs-commerce.com/ авторизуйтесь под своей учетной записью;
  2. Нажмите на кнопку "Новая заявка";
  3. Заполните все необходимые поля и создайте заявку (Вы получите на e-mail письмо с подтверждением);
  4. Ожидайте ответ специалиста (на ваш e-mail придет уведомление об ответе на вашу заявку) в соответствии с регламентами работы службы техподдержки.

Если Вы не получили ответ в течении сроков, обозначенных в регламентах, напишите нам на e-mail [email protected] сообщение с темой заявки и мы постараемся решить вас вопрос в ближайшее время.

Техническая поддержка по диалогу в чате на сайте, прямым телефонным обращениям или e-mail письмам не осуществляется. Вся помощь проходит через центр поддержки. Внимательно изучайте документацию к модулю и условия технической поддержки перед созданием обращения.

Ограничения и предупреждения

Рекомендуем ознакомиться с общими ограничениями:

  1. Фрагменты кода  или некоторые файлы модуля могут иметь закрытую (закодированную) часть. Закодированная часть не создает проблемы в доработке модуля;
  2. Модуль будет работать только на тех доменах, которые указаны в лицензии пользователя. При попытке использования решения на установках CS-Cart, домены которых не включены в лицензию, модуль будет автоматически выключен;
  3. Установка локально не допускается системой лицензирования. Чтобы модуль работал на дополнительном домене (псевдониме) укажите этот псевдоним на странице управления лицензиями. На один домен допускается указать до трех псевдонимов для нужд тестирования и разработки.
  4. Главный домен лицензии вы можете менять самостоятельно на странице управления лицензиями. 
Для доступа к изменению/добавлению доменов и псевдонимов лицензии, подписка на обновления должна быть активной. Для изменения домена лицензии с истекшим периодом подписки, сначала необходимо продлить подписку на обновления. 

 

История версий

Версия 1.0 от 6 октября 2026 года

  • Первый релиз модуля: фоновая проверка браузера на витрине без сторонних сервисов, пропуск поисковых систем по DNS и ИИ-ботов по спискам адресов, исключения для платёжных уведомлений, фильтр попыток взлома, журнал с кодом каждой проверки, страница подключения и состояния с проверкой сервера и восстановлением подключения после обновления CS-Cart.