Недавно было обнаружено, что интернет-магазины на PrestaShop подверглись атакам с использованием уязвимостей типа SQL Injection и XSS (межсайтовый скриптинг). Хакеры используют сторонние модули с уязвимостями, чтобы внедрить вредоносный код в базу данных или шаблоны, что может привести к краже конфиденциальной информации клиентов.
В чем суть атак? 🔍
SQL Injection — это метод взлома, при котором злоумышленники внедряют вредоносные SQL-запросы в поля ввода, чтобы получить доступ к данным или изменить их. В данном случае атакующие используют уязвимые модули для внедрения скриптов в конфигурационные параметры магазина, такие как PS_SHOP_NAME.
XSS (межсайтовый скриптинг) — позволяет злоумышленникам внедрять вредоносный JavaScript-код через шаблоны модулей, используя тег nofilter
. Это может привести к выполнению скриптов прямо в браузере клиента.
Как проверить, затронут ли ваш магазин?
-
Откройте базу данных через phpMyAdmin или аналогичный инструмент.
-
Найдите таблицу
ps_configuration
. -
Проверьте значение PS_SHOP_NAME — если там есть незнакомые скрипты или подозрительный код, ваш магазин может быть скомпрометирован.
-
Также можно проверить вручную главный файл модуля ps_contactinfo.php на наличие использования тега
{nofilter}
, который позволяет внедрение XSS-кода.
Если вы обнаружили вредоносный код, обращайтесь к нам — мы всегда поможем! Уже много лет мы следим за безопасностью магазинов на PrestaShop и помогаем решать подобные проблемы.
Источник уязвимостей
Уязвимости возникают в сторонних модулях, которые не были своевременно обновлены. Важно регулярно обновлять все модули, даже если они были исправлены давно. Последние версии ядра PrestaShop (1.7.8+) не подвержены данным атакам, если используются только актуальные модули.
Обновление модуля ps_contactinfo 🛠️
PrestaShop выпустила обновленную версию модуля ps_contactinfo, которая закрывает потенциальные уязвимости. Если вы используете версию PrestaShop 1.7.2 и выше, обязательно обновите модуль через панель администратора.
Также важно внести ручное исправление в код:
Замените строку:
'formatted' => AddressFormat::generateAddress($address, [], '<br />'),
на:
'formatted' => Validate::isCleanHtml($formattedAddress) ? $formattedAddress : '',
Вы можете проверить сам главный файл модуля ps_contactinfo.php, чтобы убедиться в наличии данной строки и внести необходимое исправление.
Как защитить ваш магазин 💪
-
Всегда обновляйте ядро PrestaShop и все модули.
-
Используйте нестандартные префиксы для базы данных.
-
Настройте Web Application Firewall (WAF) для блокировки вредоносных запросов.
-
Регулярно делайте резервные копии данных.
-
Следите за новостями о безопасности в официальных сообществах PrestaShop.
Проверьте свои модули 🔑
Рекомендуем проверить все установленные модули на наличие доступных обновлений. Особенно те, которые работают с формами, пользовательскими данными или шаблонами.
Безопасность интернет-магазина — это залог доверия ваших клиентов. Регулярные обновления, соблюдение рекомендаций и своевременные проверки помогают минимизировать риски и защитить данные. Поддерживайте свой магазин в актуальном состоянии и следите за новостями о безопасности PrestaShop!