Веб-разработка

Защита сайта на Webasyst и Shop-Script: магазин и бэкенд

Что сделать сразу после запуска магазина на Shop-Script: обновления, права сотрудников, адрес бэкенда, конфигурация и резервные копии.

Защита сайта на Webasyst и Shop-Script: магазин и бэкенд

Сразу после запуска магазина на Webasyst / Shop-Script сделайте три вещи: обновите фреймворк и все приложения через Инсталлер, раздайте сотрудникам отдельные учётные записи с минимальными правами и проверьте, что в wa-config/config.php отключён режим отладки. Затем переходите к адресу бэкенда, резервным копиям и защите форм.

Shop-Script — популярная в России платформа для интернет-магазинов, и магазин интересен злоумышленникам больше, чем обычный сайт-визитка: в нём есть база клиентов с телефонами и адресами, история заказов, настройки платёжных систем и интеграций с учётными программами. Чаще всего проблемы возникают не из-за уязвимостей самой платформы, а из-за слабых паролей, общих учётных записей, устаревших плагинов из сторонних источников и отсутствия резервных копий.

Ниже — практическая инструкция для владельца магазина или администратора. Большинство шагов выполняется в бэкенде Webasyst, часть — в панели хостинга. Мы в Pear Advert используем этот порядок при приёме магазина на обслуживание.

Описание системного файла config.php в документации Webasyst
Описание системного файла config.php в документации Webasyst

1. Обновления фреймворка, приложений и плагинов

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

Перед обновлением сделайте резервную копию файлов и базы данных. Если тема дизайна дорабатывалась вручную, правки должны быть сделаны так, чтобы обновление их не затёрло: пользовательские настройки приложений, по документации Webasyst, хранятся в каталоге wa-config/apps/, который при обновлении не перезаписывается.

Устанавливайте плагины и темы только из официального магазина Webasyst или от проверенных разработчиков. «Бесплатные» версии платных плагинов из сторонних источников — один из самых частых способов занести на сайт вредоносный код.

2. Учётные записи сотрудников и права доступа

У каждого сотрудника должна быть своя учётная запись. Общий логин «admin» на всех — это невозможность понять, кто что сделал, и необходимость менять пароль у всех сразу при увольнении одного человека. Пользователи и их права настраиваются в системном приложении для управления командой (в актуальных версиях оно называется «Команда»).

В Webasyst права выдаются отдельно на каждое приложение, а в Shop-Script — ещё и детально внутри него. Рекомендуемая схема:

  • Администратор (полный доступ ко всем приложениям) — один-два человека: владелец и технический специалист;
  • Менеджер заказов — доступ только к заказам и покупателям, без настроек магазина, плагинов и Инсталлера;
  • Контент-менеджер — товары, категории, страницы; без доступа к заказам и персональным данным клиентов;
  • Подрядчики — временная учётная запись с нужным объёмом прав, которую блокируют после окончания работ.

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

3. Пароли и вход в бэкенд

Пароль администратора — не короче 12–14 символов, уникальный, хранится в менеджере паролей. В системных настройках авторизации Webasyst можно выбрать способ входа в бэкенд; современные версии поддерживают вход с подтверждением одноразовым кодом и вход через Webasyst ID. Если ваша версия это позволяет, включите второй фактор хотя бы для администраторов. Точные названия пунктов зависят от версии фреймворка — ищите их в разделе настроек авторизации системного приложения «Настройки».

Адрес бэкенда по умолчанию — /webasyst/, и боты знают его не хуже вас. В файле wa-config/config.php есть параметр backend_url, задающий этот путь (значение по умолчанию — webasyst). Замена на неочевидное слово сокращает число автоматических попыток входа. Это дополнительная мера, а не замена сложному паролю.

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

4. Конфигурация и права на файлы

Ключевые файлы находятся в каталоге wa-config/: db.php содержит доступы к базе данных, config.php — системные параметры. Проверьте следующее:

  • в config.php параметр debug установлен в false. Режим отладки нужен только при разработке: на рабочем магазине он выводит подробные ошибки посетителям;
  • каталоги wa-config, wa-log, wa-cache и wa-data/protected не открываются из браузера (при правильной установке это обеспечивают файлы .htaccess — не удаляйте их; для nginx правила нужно прописать вручную);
  • права на файлы — 644, на каталоги — 755, файлы конфигурации не должны быть доступны на запись другим пользователям сервера;
  • на сервере нет забытых копий вроде db.php.bak, архивов сайта и дампов базы в публичных каталогах.

Если сайт работает за прокси или CDN, в config.php предусмотрен параметр trusted_proxies — список адресов прокси-серверов, чтобы система правильно определяла реальный IP посетителя. Это важно для журналов и блокировок.

Документация Webasyst по конфигурационным файлам приложений
Документация Webasyst по конфигурационным файлам приложений

5. Платежи и данные покупателей

Данные банковских карт магазин на Shop-Script хранить не должен: оплата проводится на стороне платёжного сервиса (ЮKassa, Робокасса, CloudPayments и другие), а магазин получает только уведомление о результате. Ключи и секретные слова платёжных модулей держите в тайне и меняйте, если к настройкам имели доступ посторонние подрядчики.

Персональные данные покупателей (ФИО, телефоны, адреса) — зона ответственности владельца магазина по 152-ФЗ. Ограничьте круг лиц, которые могут выгружать базу клиентов, и не отправляйте выгрузки по почте или в мессенджерах без необходимости.

6. Формы, регистрация и спам

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

Следите за аномалиями: десятки «заказов» с одинаковыми данными или регистраций с бессмысленными именами — признак того, что форму атакуют ботами.

Магазин хранит данные клиентов и заказов — их нужно защищать
Магазин хранит данные клиентов и заказов — их нужно защищать

7. Резервное копирование

Для полного восстановления магазина нужны база данных и все файлы: wa-apps, wa-config, wa-data (изображения товаров и загруженные файлы), wa-system, wa-plugins. Используйте автоматические копии хостинга и держите ещё одну копию вне сервера — в облачном хранилище. Базу данных сохраняйте ежедневно, перед каждым обновлением — внеочередную копию. Раз в квартал проверяйте, что из копии действительно можно развернуть рабочий магазин.

8. HTTPS, журналы и мониторинг

Витрина и бэкенд должны работать только по HTTPS с переадресацией с HTTP. Для этого достаточно бесплатного сертификата от хостинга и настройки перенаправления. В настройках приложения «Сайт» проверьте, что для домена включена принудительная работа по HTTPS, если такая опция доступна в вашей версии.

Ошибки и события Webasyst записываются в каталог wa-log, а приложение «Логи» позволяет просматривать их в бэкенде. Просматривайте журналы после обновлений и при любых странностях в работе. Подключите уведомления хостинга о нагрузке и изменениях файлов, а также внешний мониторинг доступности: если магазин «упал» ночью, вы узнаете об этом утром, а не от покупателей.

Типичные ошибки

  • Одна учётная запись администратора на всю команду и подрядчиков.
  • Менеджеры по заказам имеют доступ к Инсталлеру и шаблонам дизайна.
  • Включённый debug на рабочем магазине.
  • Плагины и темы, скачанные из неофициальных источников.
  • Обновления не ставятся годами из-за страха «сломать доработки».
  • Резервные копии делаются только хостингом и никогда не проверялись.
  • Архивы сайта и дампы базы лежат в публичном каталоге сервера.
  • Учётные записи уволенных сотрудников и бывших подрядчиков не заблокированы.

Чек-лист первичной защиты

  1. Обновить фреймворк, Shop-Script, плагины и темы через Инсталлер.
  2. Удалить неиспользуемые плагины и приложения.
  3. Создать отдельные учётные записи для каждого сотрудника.
  4. Выдать права по принципу минимальной необходимости; закрыть Инсталлер и шаблоны для нетехнических ролей.
  5. Заблокировать учётные записи бывших сотрудников и подрядчиков.
  6. Установить сложные уникальные пароли администраторам.
  7. Включить второй фактор или вход с одноразовым кодом для администраторов, если версия позволяет.
  8. Изменить backend_url на неочевидный адрес.
  9. Проверить, что debug выключен в wa-config/config.php.
  10. Убедиться, что служебные каталоги закрыты от доступа из браузера.
  11. Удалить архивы и дампы из публичных каталогов.
  12. Включить капчу и премодерацию отзывов.
  13. Настроить ежедневные резервные копии с хранением вне сервера.
  14. Перевести витрину и бэкенд на HTTPS.
  15. Настроить мониторинг доступности и регулярно просматривать журналы.

Частые вопросы

Безопасно ли облачное решение Webasyst по сравнению с собственным хостингом?

В облачной версии за обновления фреймворка и сервер отвечает платформа, поэтому часть задач снимается. Но учётные записи сотрудников, права доступа, пароли, плагины и данные покупателей остаются на вашей стороне — эти шаги нужно выполнять в любом случае.

Сломает ли обновление мои доработки?

Если доработки сделаны правильно — через плагины, пользовательские темы и файлы в wa-config, — обновление их не затронет. Если правились файлы самих приложений, их стоит перенести в плагин до обновления. Всегда обновляйте магазин после резервного копирования.

Нужно ли менять адрес /webasyst/?

Это полезная, но не обязательная мера: она отсекает часть автоматических попыток входа. Главная защита — сложные пароли, второй фактор и ограничение прав. Если меняете backend_url, сообщите новый адрес всем сотрудникам.

Что делать, если магазин уже взломан?

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

Если разбираться с правами, конфигурацией и обновлениями самостоятельно нет времени, мы проведём аудит безопасности магазина на Webasyst / Shop-Script, наведём порядок в учётных записях, настроим резервное копирование и защиту бэкенда.

Читайте также

Pear Advert · поддержка и защита сайтов

Защитим ваш магазин на Webasyst

Проверим версии, права сотрудников и конфигурацию, закроем бэкенд, настроим резервные копии и защиту форм от спама.

  • Аудит безопасности и отчёт с приоритетами
  • Обновления, бэкапы и мониторинг доступности
  • Очистка от вирусов и восстановление после взлома

Ответим в течение рабочего дня

Читать дальше

Статьи по теме

Начать проект

Давайте сделаем крутой проект вместе

Расскажите о задаче — мы бесплатно проанализируем нишу, предложим решение и назовём сроки со стоимостью. Без навязчивых звонков.

Телефон

8 (926) 837 76 68

Почта

info@pear-advert.ru

Офис

Москва, ул. Гиляровского, 57с1

Оставьте заявку

Ответим в течение рабочего дня

Выберите тип проекта

Данные используются только для ответа на заявку и хранятся не дольше трёх лет.