WAF (Web Application Firewall) - фільтр HTTP-запитів перед застосунком. Хмарні WAF (Cloudflare, AWS WAF) працюють на краю мережі, ще до вашого сервера.
Що він добре робить:
- поглинає DDoS-атаки мережевого рівня й об'ємні HTTP-флуди - ваш сервер їх не бачить;
- блокує відомі шаблони атак (керовані правила для SQL-ін'єкцій, XSS, відомих CVE популярного ПЗ) - захист «на час», поки вразливість не виправлена в коді;
- відсікає ботів і сканери: запити до
/.env,/wp-admin,/phpmyadmin, підозрілі User-Agent, перевірки на кшталт Managed Challenge; - обмеження частоти на рівні краю - для логіну, пошуку, API;
- геоблокування, списки IP, правила за ASN.
Чого WAF не робить:
- не виправляє вразливостей у логіці застосунку: BOLA (чужий id в URL), відсутня авторизація, бізнес-логіка - для WAF це звичайні коректні запити;
- не бачить усього: зашифровані дані в тілі, нестандартні формати, атаки, розтягнуті в часі;
- обходиться кодуванням і варіаціями payload-ів - сигнатурний захист не буває повним.
WAF - додатковий шар, а не заміна безпечному коду.
Головна пастка - відкритий origin. Якщо IP-адреса сервера відома (історичні DNS-записи, піддомен без проксі, заголовки листів, сертифікати в журналах Certificate Transparency), зловмисник іде напряму на сервер, оминаючи WAF і захист від DDoS.
Як закрити origin:
- фаєрвол приймає 80/443 лише з діапазонів IP Cloudflare (список публікується й змінюється - його треба оновлювати);
- Authenticated Origin Pulls (mTLS між Cloudflare і сервером) - сервер перевіряє клієнтський сертифікат Cloudflare;
- Cloudflare Tunnel - сервер узагалі не має відкритих вхідних портів, з'єднання ініціює агент з сервера;
- нова IP-адреса після підключення проксі, якщо стара вже «засвітилася»;
- усі піддомени, що ведуть на той самий сервер, - через проксі.
Справжній IP клієнта: за проксі Laravel бачить IP Cloudflare. Потрібно довіряти заголовкам лише від проксі (trustProxies з діапазонами Cloudflare) і брати CF-Connecting-IP - інакше ліміти частоти й журнали працюватимуть з неправильними адресами.
Докладніше в документації: Cloudflare: захист origin-сервера