Магазинный движок сайта ShopCMS когда-то был довольно популярным, но давно уже не обновляется и доживает свое.
У меня осталось несколько клиентов с сайтами на ShopCMS. Постоянно с ними не работаю, только «по обращению», поэтому не заметил ничего подозрительного вовремя.
Пришло уведомление клиенту от хостера о том, что с сайта рассылается спам.
Проверяю — взлома вроде как нет. Форма обратной связи и форма вопросов по товарам закрыта каптчей, особенных проблем не возникает.
Как оказалось, проблема в другом. Хотя в настройках сайта и закрыта регистрация пользователей (сайт не является интернет-магазином, просто каталог), но форма регистрации продолжает работать.
Спамеры заполняют форму, нажимают «отправить» — уходит письмо.
Как следствие — множество зарегистрированных пользователей.
Закрытие уязвимости
Для начала удаляем всех пользователей, кроме администратора. Это делается через phpMyAdmin. Нужно выполнить следующие запросы
DELETE FROM
customers
WHEREcustomerID
>1DELETE FROM
customer_addresses
WHEREcustomerID
>1DELETE FROM
customer_log
WHEREcustomerID
>1
Далее нужно запретить доступ к странице регистрации пользователей. Страница эта имеет адрес имя_сайта.by/index.php?register=yes
Соответственно, чтобы запретить к ней доступ, я прописал дополнительные записи в корневом файле .htaccess сайта:
RewriteEngine on
RewriteBase /RewriteCond %{QUERY_STRING} register [NC]
RewriteRule ^.*$ — [R=404,L]
Всё, проблема решена.