Безопасность интернет-магазина: где утекают данные
Интернет-магазин хранит редкое сочетание данных: имя, телефон, адрес доставки, история покупок и платёжные привычки. Это дороже на теневом рынке, чем просто база email. При этом типичный магазин на готовой платформе с десятком плагинов имеет поверхность атаки шире, чем банк. Разберём, где рвётся чаще всего.
Точка 1. Чужие скрипты на странице оплаты
Веб-скиммеры внедряют несколько строк JavaScript, которые копируют данные карты из формы до её отправки. Попадают они обычно не через ваш сайт: злоумышленник компрометирует сторонний сервис — виджет чата, счётчик, скрипт рекомендаций — и вредонос приезжает к вам обновлением. Защита: платёжная форма живёт на стороне банка или в изолированном фрейме, а на странице оплаты не должно быть ни одного стороннего скрипта. Политика безопасности контента с явным списком разрешённых источников блокирует попытку загрузить чужой код.
Точка 2. Открытый API и перебор идентификаторов
Самая частая находка при аудите: эндпоинт вида /api/orders/12345 отдаёт заказ без проверки, принадлежит ли он текущему пользователю. Меняя номер, можно за час выгрузить всю базу с адресами и телефонами. Это классическая уязвимость, которая занимает первое место в OWASP Top 10. Проверить просто: авторизуйтесь под тестовым аккаунтом и попробуйте открыть чужой заказ по прямой ссылке. Эту проверку мы включаем в обязательный чек-лист при разработке магазинов.
Точка 3. Экспорт и выгрузки
- Файлы выгрузки для маркетплейсов и товарных агрегаторов, лежащие в открытом каталоге и содержащие лишние поля.
- Отчёты в формате Excel, которые менеджеры пересылают в мессенджерах и на личную почту.
- Резервные копии базы в корне сайта с предсказуемым именем вроде dump.sql.
- Тестовое окружение с копией боевой базы, доступное по адресу test.вашдомен.ру без пароля.
- Логи с полными телами запросов, включая персональные данные и токены.
Точка 4. Учётные записи сотрудников
Уволенный менеджер сохраняет доступ ещё месяцами — просто потому, что отключение аккаунтов не встроено в процесс увольнения. У каждого сотрудника права «на всякий случай» полные, включая выгрузку всей базы. Это уже не техническая, а организационная проблема, и решается она разграничением ролей и регламентом. Подробнее мы разбирали это в материале о правах доступа.
Точка 5. Плагины и модули
Средний магазин на готовой CMS содержит 20–40 расширений, часть из которых не обновлялась годами, а часть — куплена на стороннем маркетплейсе неизвестного качества. Каждое расширение выполняется с полными правами приложения и имеет доступ к базе. Правило простое: любой модуль, которым не пользуются, должен быть удалён, а не отключён — отключённый код часто остаётся доступным по прямому URL.
Цена утечки в рублях
С 2025 года штрафы по 13.11 КоАП за утечку персональных данных начинаются от 3 млн рублей при объёме от 1 000 субъектов и доходят до 15 млн при объёме свыше 100 000. Повторное нарушение переводит наказание в оборотную форму: от 1% до 3% годовой выручки, минимум 20 млн рублей. Добавьте к этому обязательное уведомление Роскомнадзора в течение 24 часов с момента обнаружения и репутационные потери. Актуальные редакции норм удобно сверять на портале правовой информации.
Чек-лист на эту неделю
- Проверить доступ к чужому заказу по прямой ссылке под тестовым аккаунтом.
- Просмотреть список всех сторонних скриптов на странице оформления заказа.
- Найти и закрыть тестовые окружения и открытые файлы выгрузки.
- Свести список активных учётных записей с актуальным штатным расписанием.
- Удалить неиспользуемые модули и обновить оставшиеся.
- Включить двухфакторную аутентификацию для всех администраторов.
Аудит по этому списку занимает один рабочий день и обычно приносит две-три находки уровня «данные лежали открыто». Если нужен внешний взгляд — обсудим формат, а примеры наших коммерческих проектов есть в портфолио.
