Host Header Injection — это уязвимость, возникающая, когда веб-приложение доверяет заголовку Host, полученному в HTTP-запросах, без проверки. Это может привести к ряду опасных сценариев:
🔸Перенаправление пользователей на вредоносные сайты.
🔸Подделка ссылок для сброса пароля.
🔸Манипуляции с поведением сервера.
Как это проявляется в приложениях Laravel?
Если Laravel-приложение использует заголовок Host для принятия критически важных решений без проверки, это создает серьезный риск.
В первом примере ссылка для сброса пароля формируется напрямую из заголовка Host. Злоумышленник может отправить запрос с поддельным заголовком.
Как защитить Laravel-приложение от Host Header Injection?
1. Проверка заголовка Host
Вместо использования заголовка Host используйте переменную
APP_URL из файла конфигурации .env2. Ограничение доверенных хостов
Используйте middleware
trustedproxies, чтобы разрешить запросы только с доверенных хостов. В файле config/trustedproxy.php настройте параметр host3. Корректная настройка APP_URL
Убедитесь, что в файле .env указано правильное значение:
APP_URL=https://yourdomain.com
Проверка на уязвимость
Для проверки приложения на уязвимость можно использовать бесплатные инструменты для анализа безопасности.
