Я пытаюсь выяснить недостатки текущей настройки и обнаружил потенциальную аномалию. Есть веб-страница, размещенная на (скажем) webpage.com
. Если я укажу свой домен (скажем) mydomain.com
на необработанный IP-адрес webpage.com
, фактическая webpage.com
веб-страница будет возвращена в веб-запросе для mydomain.com
. Но является ли это хорошей практикой? Должен ли VirtualHost (или SNI) фильтровать запросы с параметром 'host' в заголовке HTTP, которых нет на сервере?
решение1
В идеале, виртуальный хост — это хорошая практика. Это простой способ защиты от различных атак по созданию доменов (facebok.com, aple.com, micro-soft.com), поскольку Apache будет обслуживать только запросы с webpage.com. Без виртуального хоста было бы тривиально проксировать ваш сырой IP, что упрощает вышеупомянутое создание.Вотстатья в Википедии об этом.
Вкратце: Нет, это усложняет возможность другим выдавать себя за ваш сайт.
Любопытно: ваш сайт использует SSL? Браузеры откажутся подключаться из-за недействительного сертификата, если кто-то попытается атаковать с помощью созданного домена. Также в качестве эксперимента возьмите старый домен, который вы больше не используете, и укажите ему тот же IP. Посетите домен.
решение2
Это не имеет большого значения. Даже если вы "защищаете" , VirtualHost X
предваряя его NameVirtualHost X
, это не сильно меняет ситуацию. Это проверяет заголовок HTTP Host, который приходит на сервер. Но все равно очень легко для любого настроить свой собственный прокси (например, свой собственный сервер Apache) для перенаправления на ваш сайт.
В публичном Интернете вы не можете легко предотвратить ситуацию, которую я бы описал так: кто-то вводит mydomain.com
в свой браузер, но получает контент, который должен отображаться для публики как properdomain.com
. И TLS/SNI также не может этого предотвратить.