Перейти к содержимому
Все статьи
Безопасность

Сайт на PHP 7 или 5 после PHP2Shell: латать, переезжать или переписывать

22 октября 2026 г.· 9 мин чтения
Не уверены, что сайт чистый?Проверить сайт на взлом

PHP2Shell затрагивает почти все версии PHP начиная с 5.4. Официальные релизы с исправлениями вышли только для поддерживаемых веток 8.2–8.5. Для 7.4, 8.0 и 8.1 команда PHP подготовила исправления исходного кода, но готовых версий не выпускала: их собирают дистрибутивы и коммерческие поставщики. А для 7.3 и всего, что старше, исправлений нет вовсе.

Если ваш сайт написан лет семь-десять назад и до сих пор работает на PHP 5.6 или 7.x, этот выпуск касается вас больше всех. Ниже — реальные варианты и цена каждого.

Какая у вас ситуация

Версия PHPИсправление PHP2ShellЧто это значит
8.2–8.5Официальные релизы 8.2.35, 8.3.36, 8.4.27, 8.5.12Обновиться внутри своей ветки — обычно без изменений кода
8.1Бэкпорты дистрибутивов (Ubuntu 22.04, RHEL/Alma, cPanel)Можно закрыть сейчас, но ветка давно вне поддержки — планируйте переход
7.4, 8.0Только у дистрибутивов и поставщиков, которые ещё собирают эти веткиЗависит от хостинга. Многие площадки исправлений не выпустят
5.4–7.3НетУязвимость останется навсегда. Нужен переход на новую версию или изоляция

Вариант 1. Бэкпорт от поставщика

Некоторые поставщики продолжают выпускать исправления для старых веток: сборки alt-php в CloudLinux, ea-php в cPanel, пакеты RHEL и AlmaLinux. Если ваш хостинг их использует, исправление может прийти «само», без смены версии PHP. Это самый быстрый путь, но он только откладывает проблему: следующая уязвимость может не получить бэкпорта.

Вариант 2. Обновление PHP с адаптацией кода

Чаще всего старый сайт не запускается на PHP 8 «как есть»: изменились функции работы с базой, строгость типов, поведение ошибок, устарели библиотеки. Но объём работы почти всегда меньше, чем кажется. Типичная картина — несколько десятков мест в коде и пара библиотек, которые нужно заменить.

ПереходТипичный объёмОриентир по сроку
7.4 → 8.3Предупреждения о типах, устаревшие функции, обновление зависимостей1–2 недели
7.0–7.3 → 8.3То же плюс замена библиотек, проверка шаблонов2–4 недели
5.6 → 8.3Работа с базой данных (mysql_*), шифрование, кодировки, сторонние модули3–6 недель или поэтапно

Мы делаем это как отдельную услугу — обновление PHP с проверкой совместимости, от 24 000 ₽, обычно 2–4 недели. Сайт продолжает работать на старой версии, пока новая проверяется на копии: формы, корзина, оплата, обмен с 1С, фоновые задачи. Переключение — одной операцией, с возможностью быстро откатиться.

Вариант 3. Изоляция на время перехода

Пока идёт обновление, старый сайт можно спрятать за защитным слоем. Это не исправляет уязвимость, но заметно сужает круг атакующих:

  • Ограничить размер запросов и загрузку файлов на nginx или CDN, закрыть multipart там, где загрузки не нужны.
  • Вынести админку и служебные разделы под доступ по IP или VPN.
  • Отключить session.upload_progress и, если позволяет нагрузка, перезапускать FPM-процесс после каждого запроса (pm.max_requests = 1).
  • Убрать с сервера всё лишнее: старые копии сайта, phpMyAdmin, архивы и тестовые поддомены.
  • Хранить секреты отдельно и регулярно их менять, раз полностью исключить утечку памяти не получится.

Вариант 4. Переезд или новая версия сайта

Если сервер работает на системе, которая сама давно не обновляется (например, CentOS 7 или Ubuntu 16.04), латать один PHP бессмысленно: рядом окажутся такие же старые OpenSSL, ядро и почтовый сервер. Тогда правильнее перенести сайт на актуальный сервер с поддерживаемым PHP. А если сайт морально устарел целиком и каждая доработка дорожает, стоит посчитать новую разработку: иногда она окупается быстрее, чем кажется, за счёт скорости, конверсии и стоимости сопровождения.

Как выбрать

  • Ветка 8.1 и есть бэкпорт — закройте уязвимость сейчас и запланируйте переход на 8.3 в ближайшие месяцы.
  • 7.4 или 8.0, хостинг выпускает исправления — ставьте их и сразу начинайте обновление PHP: следующий раз может не повезти.
  • 7.3 и старше — нужна изоляция сегодня и обновление PHP в ближайшие недели. Это не та ситуация, которую можно отложить до следующего квартала.
  • Старая ОС на сервере — переезд, а не точечные исправления.

Если непонятно, к какому варианту относится ваш проект, пришлите адрес сайта через контакты. Определим версию PHP и окружение, оценим объём работ и предложим план: что закрыть сегодня, а что сделать в следующие недели. Если всё нужно срочно, начнём с скорой помощи — изоляции и временной защиты — от 4 900 ₽.

Источники

Вопросы и ответы

Есть ли исправление PHP2Shell для PHP 7.4?

Официального релиза нет. Команда PHP подготовила исправления исходного кода для 7.4, 8.0 и 8.1, а готовые сборки выпускают отдельные дистрибутивы и поставщики, например CloudLinux или cPanel. Уточните у своего хостинга.

Сколько стоит перевести сайт на новый PHP?

Наша услуга обновления PHP стоит от 24 000 ₽ и обычно занимает 2–4 недели. Переход с PHP 5.6 бывает дольше: многое зависит от того, как написана работа с базой данных.

Можно ли просто переключить версию PHP в панели хостинга?

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

Что делать сегодня, если обновление займёт недели?

Изолировать сайт: ограничить запросы и загрузку файлов, закрыть админку по IP, отключить лишние функции PHP, убрать с сервера старые копии и сменить пароли.

Нужна помощь с проектом?

Обсудим задачу и предложим решение — от сайта до SaaS и защиты.

Связаться