Файл httpd.conf позволяет разграничивать доступ ко всем веб-документам либо доступ к документам в отдельных каталогах. Инструкция Options определяет, какие возможности сервера разрешены к применению для тех или иных документов.
Инструкция Options внутри контейнера Directory действует только на конкретный каталог. Пример мы можем найти непосредственно в системе Solaris:
<Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/apache/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from al l </Directory> <Directory "/var/apache/icons"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from al l </Directory> <Directory "/var/apache/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from al l </Directory>
Данные инструкции управляют доступом к возможностям сервера для четырех каталогов: корневого (/), /var/apache/htdocs, /var/apache/icons и /var/ apache/сgi-bin. В примере отражены четыре из допустимых значений инструкции Options: FollowSymLinks, Indexes, None и MultiViews. Инструкция Options позволяет использовать следующие аргументы: All - Разрешает использовать все возможности сервера.
ExecCGI - Разрешает исполнение сценариев CGI из указанного каталога. Параметр ExecCGI разрешает исполнение сценариев CGI из других каталогов, а не только из каталога ScriptAlias. Многие администраторы устанавливают этот параметр для каталога ScriptAlias, но это избыточное действие: инструкция ScriptAlias уже определила /var/apache/cgi-bin в качестве каталога сценариев. В данном примере Options имеет значение None для каталога /var/apache/cgi-bin, что не отменяет действия инструкции ScriptAlias.
FollowSymLinks - Разрешает использование символических ссылок. Если включен данный параметр, сервер считает символическую ссылку обычным документом из данного каталога.
Includes - Разрешает обработку инструкций SSI (Server Side Includes).
IncludesNOEXEC - Разрешает обработку файлов SSI, не содержащих команды #ехе с и «include.
Indexes - Разрешает передачу списка файлов каталога в отсутствие файла index.html.
MultiViews - Разрешает согласование языка документа. См. также описание инструкций AddLanguage и LanguagePriority (раздел «Определение файловых типов» выше по тексту).
SymLinksIfOwnerMatch - Разрешает использование символических ссылок в случаях, когда целевые файлы принадлежат владельцу ссылок.
Используйте серверные параметры с осторожностью. Параметры None и MultiViews, использованные в настройках Solaris, не должны вызывать проблем с безопасностью, хотя MultiViews поглощает ресурсы сервера. Параметр Indexes связан с легкими рисками, поскольку афиширует содержимое каталога в отсутствие файла index.html, что может быть нежелательным в отдельных случаях. FollowSymLinks потенциально связан с проблемами, поскольку символические ссылки увеличивают общее число каталогов с документами. Чем больше каталогов, тем сложнее обеспечивать их безопасность, поскольку для каждого необходимо установить определенные права доступа и за каждым необходимо наблюдать на предмет обнаружения поврежденных файлов. (В главе 12 содержится информация о Tripwire, инструменте, облегчающем задачу наблюдения за файлами.)
Контейнеры Directory из последнего примера содержат, помимо прочего, инструкции AllowOverride. Эти инструкции ограничивают возможности настройки отдельных каталогов.