Назад | Перейти на главную страницу

Ограничение домена Apache

Я хотел бы настроить Apache (2.2), чтобы ограничить доступ пользователей к доменам, например если полное доменное имя apache - myapache.myfunnydomain.com, тогда apache будет разрешать запросы только к ресурсам в .myfunnydomain.com (или любом другом домене, который я настроил как законный) и отклонять все другие запросы (перенаправлять на страницу ошибки)

Пример использования:

  1. Пользователь пытается получить доступ к ограниченному ресурсу
  2. Я использую OpenAm / OpenAm policyAgent для аутентификации (PolicyAgent устанавливается как модуль Apache, который прослушивает весь трафик)
  3. Модуль OpenAm policyAgent перехватывает это и перенаправляет пользователя на страницу входа.
  4. URL-адрес этой страницы входа имеет вид www.loginpage.com/?goto=originallyrequestedresource.com.
  5. Как только пользователь нажимает кнопку входа в систему, этот POST отправляется в параллельную систему OpenAM.
  6. После аутентификации OpenAM использует этот goto для перенаправления пользователя на значение goto (с использованием 302).
  7. Я хочу убедиться, что пользователя никогда не перенаправят на домен, отличный от моего разрешенного домена

например кто-то взламывает систему и ему удается изменить значение goto, тогда apache не позволит выполнить этот запрос

Создание виртуального хоста .. Порядок виртуальных хостов имеет значение .. первый виртуальный хост обслуживается, если ни один из виртуальных хостов не совпадает.

Взгляни на http://httpd.apache.org/docs/2.2/vhosts/name-based.html

создать что-то вроде

NameVirtualHost *:80

<VirtualHost *:80>
ServerName dummy.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain/dummy
</VirtualHost>

<VirtualHost *:80>
ServerName www.domain.tld
DocumentRoot /www/otherdomain
</VirtualHost>

Пусть первый виртуальный хост будет универсальным виртуальным хостом .. (перенаправление на страницу с ошибкой, если к ней обращались независимо от запроса)

тогда последующие vhosts могут быть конкретными vhosts, которые отвечают на определенные fqdn ...

В приведенном выше примере все запросы, которые не соответствуют 'wwww.domain.tld', будут обработаны первым виртуальным хостом ....

Вы также можете прочитать директиву serverAlias ​​из http://httpd.apache.org/docs/2.2/mod/core.html#serveralias

--Надеюсь это поможет...