Файл 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 (раздел «Определение файловых типов» выше по тексту).

None - Запрещает все возможности. Мой любимый аргумент!

SymLinksIfOwnerMatch - Разрешает использование символических ссылок в случаях, когда целевые файлы принадлежат владельцу ссылок.

Используйте серверные параметры с осторожностью. Параметры None и MultiViews, использованные в настройках Solaris, не должны вызывать проблем с безопасностью, хотя MultiViews поглощает ресурсы сервера. Параметр Indexes связан с легкими рисками, поскольку афиширует содержимое каталога в отсутствие файла index.html, что может быть нежелательным в отдельных случаях. FollowSymLinks потенциально связан с проблемами, поскольку символические ссылки увеличивают общее число каталогов с документами. Чем больше каталогов, тем сложнее обеспечивать их безопасность, поскольку для каждого необходимо установить определенные права доступа и за каждым необходимо наблюдать на предмет обнаружения поврежденных файлов. (В главе 12 содержится информация о Tripwire, инструменте, облегчающем задачу наблюдения за файлами.)

Контейнеры Directory из последнего примера содержат, помимо прочего, инструкции AllowOverride. Эти инструкции ограничивают возможности настройки отдельных каталогов.