@mark_me

Хорошая ли практика проверять домен через HTTP_HOST?

Есть несколько доменов, которые ссылаются на один и тот же сервер. Чтобы выдавать динамическую информацию я проверяю домен через $_SERVER['HTTP_HOST'] и выдаю нужную страничку. Какие подводные камни?

$allowed_hosts = array('domain.ru', 'domain2.ru');

if (!isset($_SERVER['HTTP_HOST']) || !in_array($_SERVER['HTTP_HOST'], $allowed_hosts)) {
    header($_SERVER['SERVER_PROTOCOL'].' 400 Bad Request');
    exit();
}
  • Вопрос задан
  • 421 просмотр
Решения вопроса 3
Sanes
@Sanes
Бестолковая затея. Если в плане защиты, как говорят ответы выше. Сделайте заглушку на хост по-умолчанию. Все, кто не прописан на хосте веб-сервера попадут на заглушку.
Для роутинга вроде так и делается.
Ответ написан
sim3x
@sim3x
Да, хорошая практика защищающая от атак
https://docs.djangoproject.com/en/2.2/topics/secur...
Ответ написан
@hell
Если у вас стоит (или появится) reverse proxy, результаты работы вашего кода вас удивят.
Корректнее будет использовать $_SERVER['SERVER_NAME'];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы