Spec-Zone.ru › Apache HTTP Server

Модуль Apache mod_userdir

Описание: Каталоги пользователей
Статус: Базовый
Идентификатор модуля: userdir_module
Исходный файл: mod_userdir.c

Краткое описание

Используя этот модуль, вы разрешаете нескольким пользователям размещать содержимое в пределах одного источника. Политика одного источника — один из ключевых принципов JavaScript и веб-безопасности. Если веб-страницы размещены в пределах одного источника, они могут читать данные друг друга и управлять ими, а проблемы безопасности на одной странице могут затронуть другую. Это особенно опасно в сочетании с веб-страницами, использующими динамическое содержимое и аутентификацию, а также в случаях, когда ваши пользователи не обязательно доверяют друг другу.

Этот модуль позволяет обращаться к каталогам пользователей с помощью синтаксиса http://example.com/~user/.

Директива UserDir

Описание: Расположение каталогов пользователей
Синтаксис:
UserDir directory-filename [directory-filename] ...
Контекст: конфигурация сервера, виртуальный хост
Статус: Базовый
Модуль: mod_userdir

Директива UserDir задаёт фактический каталог в домашнем каталоге пользователя, который следует использовать при получении запроса на документ пользователя. Имя каталога или файла — это одно из следующего:

  • Имя каталога или шаблон, например, показанные ниже.
  • Ключевое слово disabled. Оно отключает все преобразования имени пользователя в имя каталога, кроме явно указанных с помощью ключевого слова enabled (см. ниже).
  • Ключевое слово disabled, за которым следует список имён пользователей, разделённых пробелами. Для имён пользователей из этого списка никогда не будет выполняться преобразование в каталог, даже если они указаны в условии enabled.
  • Ключевое слово enabled, за которым следует список имён пользователей, разделённых пробелами. Для этих пользователей будет выполняться преобразование в каталог, даже если оно глобально отключено, но не в том случае, если они также указаны в условии disabled.

Если в директиве Userdir не указаны ключевые слова enabled или disabled, аргумент рассматривается как шаблон имени файла и используется для преобразования имени в спецификацию каталога. Запрос к http://www.example.com/~bob/one/two.html будет преобразован в:

Используемая директива UserDir Преобразованный путь
UserDir public_html ~bob/public_html/one/two.html
UserDir /usr/web /usr/web/bob/one/two.html
UserDir /home/*/www /home/bob/www/one/two.html

Следующие директивы будут отправлять клиенту перенаправления:

Используемая директива UserDir Преобразованный путь
UserDir http://www.example.com/users http://www.example.com/users/bob/one/two.html
UserDir http://www.example.com/*/usr http://www.example.com/bob/usr/one/two.html
UserDir http://www.example.com/~*/ http://www.example.com/~bob/one/two.html
Будьте осторожны при использовании этой директивы: например, "UserDir ./" преобразует "/~root" в "/", что, вероятно, нежелательно. Настоятельно рекомендуется включить в конфигурацию объявление "UserDir disabled root". Дополнительные сведения см. также в директиве Directory и на странице Советы по безопасности.

Дополнительные примеры:

Чтобы разрешить нескольким пользователям иметь каталоги UserDir, но запретить это всем остальным, используйте следующую настройку:

UserDir disabled
UserDir enabled user1 user2 user3

Чтобы разрешить большинству пользователей иметь каталоги UserDir, но запретить это нескольким пользователям, используйте следующую настройку:

UserDir disabled user4 user5 user6

Также можно указать альтернативные каталоги пользователей. Если использовать команду вида:

UserDir "public_html" "/usr/web" "http://www.example.com/"

При запросе к http://www.example.com/~bob/one/two.html сначала будет предпринята попытка найти страницу в ~bob/public_html/one/two.html, затем в /usr/web/bob/one/two.html, а в конце клиенту будет отправлено перенаправление на http://www.example.com/bob/one/two.html.

Если вы добавляете перенаправление, оно должно быть последней альтернативой в списке. Apache httpd не может определить, было ли перенаправление успешным, поэтому, если поместить его раньше в списке, эта альтернатива будет использоваться всегда.

В версиях 2.1.4 и более поздних подстановка пользовательских каталогов по умолчанию не выполняется. В более ранних версиях, если директива UserDir отсутствовала, предполагалось значение UserDir public_html.

Особенности объединения

Списки конкретных пользователей, для которых функция включена или отключена, заменяются, а не объединяются при переходе от глобальной области конфигурации к области виртуального хоста

См. также

  • Руководство по веб-каталогам пользователей

© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_userdir.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API