Ядро CMS обновляют почти все. А вот плагины и модули живут своей жизнью: поставили пять лет назад, работает — и ладно. Между тем по статистике взломов именно расширения, а не ядро, оказываются входной дверью в подавляющем большинстве случаев.
Почему дыры именно в плагинах
Ядро WordPress и Битрикса пишут команды с процессом ревью и с деньгами на безопасность. Плагин может написать один человек в свободное время. Он не обязан быть плохим программистом — он просто не обязан заниматься безопасностью годами.
Второй фактор — массовость. Уязвимость в популярном плагине с миллионом установок означает миллион одинаковых мишеней. После публикации информации о ней начинается массовое сканирование сайтов, и находят их за часы, а не за месяцы.
Третий — плагин работает внутри сайта с полными правами. Дыра в галерее картинок даёт доступ ко всему.
Главная опасность — заброшенные
Плагин, у которого последнее обновление три года назад, опаснее устаревшего: у него нет автора, который выпустит исправление. Уязвимость в нём не закроется никогда.
Как проверить: на странице плагина в каталоге указаны дата последнего обновления и версия CMS, с которой он проверялся. Пометка «не тестировался с последними версиями» — сигнал.
Ревизия: что сделать один раз
Откройте список установленных расширений и по каждому ответьте на три вопроса.
- Используется ли он вообще? Половина списка обычно ставилась «попробовать». Неиспользуемое надо удалять, а не деактивировать: файлы деактивированного плагина остаются на сервере и остаются уязвимыми.
- Когда обновлялся в последний раз? Больше года — под замену.
- Нет ли дублирования? Два плагина кэширования или три формы обратной связи — частая картина. Лишние тормозят сайт и увеличивают площадь атаки.
На типичном сайте после такой ревизии из тридцати расширений остаётся двенадцать-пятнадцать. Сайт ускоряется, а обновлять становится нечего.
Как выбирать новые
- Свежая дата последнего обновления — важнее числа установок.
- Автор отвечает в разделе поддержки, а не молчит по полгода.
- Понятно, кто разработчик: компания или активный автор.
- Отзывы за последний год, а не за 2019-й.
- Для платных модулей — наличие подписки на обновления, а не разовая покупка навсегда.
И отдельно: не ставьте платные плагины из «бесплатных сборок». В них регулярно зашивают закладки — это один из самых массовых способов заражения сайтов.
Как обновлять безопасно
Пакетами, а не по одному и не все сразу. Порядок: бэкап, обновление группы из трёх-пяти плагинов на тестовой копии, проверка ключевых сценариев, перенос на боевой. Если что-то сломалось, круг поиска — эти три-пять, а не весь список.
Обязательная проверка после обновления: формы, корзина, оплата, мобильная вёрстка. Именно они ломаются чаще всего и приносят деньги.
Что делать с плагином, который нельзя обновить
Бывает, что расширение критично для работы, а его новая версия несовместима с вашим сайтом. Варианты по предпочтительности: найти живую замену, заказать доработку под новую версию, вынести функцию за пределы плагина. Оставлять как есть — тоже вариант, но тогда нужны компенсирующие меры: ограничение доступа, мониторинг изменений файлов, регулярная проверка на закладки.
Сколько времени это занимает
Разовая ревизия списка — 2–3 часа. Дальше ежемесячное обновление пакетами — 1–2 часа. Это несопоставимо с восстановлением после взлома, которое начинается от 25 000 ₽ и занимает несколько дней, включая снятие пометки о заражении в поисковиках.
Мы проводим такую ревизию в рамках технического аудита и дальше держим список в порядке на сопровождении: обновляем пакетами на копии, проверяем и переносим.