Возможны ли проблемы с использованием ServerAlias *
в конфигурации Apache?
Я подумал об одном: ServerAlias
основан на HTTP_HOST в заголовках HTTP, доставленных клиентом, которые, очевидно, могут быть изменены клиентом вручную. Есть ли какое-либо значение, которое пользователь может отправить через HTTP_HOST, который может нанести вред серверу?
Нет, насколько я понимаю, это краткий ответ. Как упоминалось Эса Йокинен Сам Apache не может пострадать от простого использования HTTP_HOST
Однако это может создать проблемы для приложения, работающего на Apache. Отсюда возможность злонамеренных атак растет в геометрической прогрессии.
После прочтения этой статьи Практические атаки заголовка HTTP-хоста можно лучше понять как HTTP_HOST
атаки могут произойти, и на что они могут повлиять. В статье пример атаки использует curl для подмены HTTP_HOST
для включения лишнего непреднамеренного содержания. Вот аналогичный пример подключения к вашему локальному хосту и сохранения вывода:
curl -H "Host: fakehostPLUS\"onerror='alert(1)'rel='stylesheet'" localhost -o file.html
Что ж, в этом не должно быть необходимости. Если никто другой VirtualHosts
сопоставить имя хоста, сервер будет использовать виртуальный хост по умолчанию, который является первым виртуальным хостом в конфигурации. Поэтому виртуальный хост по умолчанию обычно называется 000-default
; просто стать первым в /etc/apache2/sites-enabled
.
Таким образом, вы можете добиться того же результата, переименовав символическую ссылку в sites-enabled
быть первым. Или вы могли бы сделать 000-default
чтобы быть перенаправлением на ваш реальный домен.
Я не думаю, что в настоящее время в Apache есть известная уязвимость, которая могла бы использовать только HTTP_HOST
. Однако это зависит от приложений, которые вы запускаете на виртуальном хосте по умолчанию, например скрипт PHP, который позволяет изменять некоторые используемые переменные через HTTP_HOST
. Фактически, сделав 000-default
просто перенаправление, вы также можете предотвратить этот (незначительный) риск.