Если у вас на сайте отправка через
fetch + FormData или загрузка файлов на PHP-хостинге и сегодня вы ловите 403 Forbidden, хотя вчера всё работало, это не ваша ошибка.21 октября утекли данные о двух критических уязвимостях PHP (CVE-2026-109618 и CVE-2026-109619, 9,2 из 10). Дыра в обработке загрузки файлов позволяет выполнить чужой код на сервере. Хостинги и Cloudflare срочно включили защиту WAF (фильтр, который режет подозрительные запросы до того, как они дойдут до сайта). Под раздачу попадают запросы
multipart/form-data, а именно его браузер и шлёт, когда вы используете FormData.Как понять, что это оно
В DevTools → Network запрос к PHP возвращает 403,
content-type: text/html, заголовка X-Powered-By нет, зато есть Server: openresty. Через curl с application/x-www-form-urlencoded тот же адрес отвечает нормально, а с -F (multipart) снова 403.Как починить прямо сейчас (если файлов нет)
Замените
FormData на URLSearchParams и явно укажите Content-Type: application/x-www-form-urlencoded. PHP трогать не нужно, $_POST разберёт всё сам.Что останется сломанным
Загрузка файлов: через urlencoded их не передать. Патч PHP уже вышел, но хостинги обновляются не сразу. Пока они не обновят PHP или не добавят исключение в WAF, остаётся писать в поддержку или временно перейти на base64 (это уже с правкой PHP).
Мораль: если отвалился код с
FormData, первым делом смотрите в ответе заголовки Server и X-Powered-By. Если их нет, это не ваш баг, а WAF.Кстати, это одна из причин, почему я давно не работаю на WordPress, Tilda и других конструкторах. Когда сайт живёт на чужой платформе, любая уязвимость или блокировка у неё становится вашей проблемой, и вы просто ждёте, пока её починят.
Я собираю проекты в коде и сам решаю, где и как они работают:
• Next.js + React + TypeScript — быстрые сайты, которые хорошо видят поисковики
• Tailwind — вёрстка без тяжёлых тем и плагинов
• Supabase / Postgres — база данных, заявки, личные кабинеты
• Telegram- и MAX-боты с оплатой и ИИ-ассистентами
• Свой сервер или Vercel — без зависимости от конструктора
Если устали от плагинов, обновлений и внезапных поломок и думаете переехать с CMS — пишите в личку, помогу перенести сайт и ничего не потерять 👉 @denis_lishkov
Сохраняйте, чтобы не искать, и проверьте свои проекты 🔖
Новость на Shazoo
🌐 lishkov.com