Экстренный рефакторинг 32 проектов с mysql_* на PHP 8.5 без единой строчки правок в бизнес-логике
The author describes an evening on 21 October 2026 when his phone started ringing constantly after his security scanner raised an alert. Two critical vulnerabilities in PHP had been disclosed that morning, and exact details were not yet public. According to the account, the vendor had already released a fix in version 8.5. The task that followed was an emergency refactoring of 32 projects from the old mysql_* functions to PHP 8.5 without changing a single line of business logic.
Вечером 21 октября 2026 года мой телефон разорвался от звонков. В рабочем чате, где обычно обсуждают котов и сроки сдачи макетов, висел одинокий, но очень жирный алерт от моего сканера безопасности. Который гласил, что нам всем конец. Две критические уязвимости в PHP, раскрытые утром этого злополучного дня. Точных деталей в паблике еще небыло. Говорилось, что вендор уже выкатил фикс в 8.5.12, а все, что ниже — официально в красной зоне. Такая информация была на момент осознания масштаба проблемы. У меня на поддержке около сотни сайтов. Разброс по серверам — от убитого shared-хостинга, где админ спит еще с нулевых, до пары десятков VPS. Версии PHP — от гордого 8.3 на свежих проектах до музейных экспонатов. Первая мысль была рациональной: « Завтра с утра спокойно пропишем обновление в CI/CD, прогоняем тесты, выкатываем ». Вторая мысль, более честная, пришла через секунду: « если дыры опубликовали сегодня, эксплойты появятся в паблике завтра к обеду ». Спать я в ту ночь лег в 04:30. Читать далее