Задача 1. Индексный файл веб-директории и представление каталог в веб

Опубликовано пользователем Бессонов Л.В. 02.03.2010г.

Описание

Зачастую, обращаясь к веб-серверу, Вы не указываете файл, к которому адресован запрос. В самом деле, намного чаще Вы пишете http://www.sgu.ru/ или http://nto.immpu.sgu.ru/, и гораздо реже http://www.sgu.ru/index.php и т.п.

Когда обращаение к каталогу на сервере осуществляется без указания файла, в ответ веб-сервер может выдать:

  1. Индексный файл (файл, считающийся «файлом по умолчанию», если в запросе указан только каталог)
  2. Веб-представление каталога
  3. Служебное сообщение об отказе в доступе

Разберёмся подробнее по каждому пункту.

Индексный файл, это файл, который открывается при обращении к каталогу сайта, если не указан конкретный файл в папке. По умолчанию индексными файлами являются файлы со следующими названиями: index.php, index.htm, index.html, index.shtm. Чтобы переопределить список индексных файлов или их приоритет, в .htaccess добавляется директива DirectoryIndex. Например, определим что индексным является файл somefile.ext:

  1. DirectoryIndex somefile.ext

Веб-представление каталога — html-страничка, где файлы находящиеся в каталоге отображены похоже на представление проводника Windows.

 Веб-папка - представление папки веб-сервером Apache

По умолчанию конфигация веб-сервера Apache не делает такое отображение для папок, потому что это считается брешью в безопасности. Злоумышленники могут видеть список файлов, хранящихся в папке, а зная имя файла и его тип (допустим, скрипт на языке PHP) можно проще отыскать уязвимости.

Но иногда такое представление нужно. Включить его можно, используя директиву Options.

Директива Options служит для указания особенностей обработки и отображения папки. Её синтаксис:

Options [+|-]option [[+|-]option] ...

То есть после названия директивы Options указываются опции с плюсом или с минусом перед опцией. Знак «плюс» означает что опция включена, «минус» — опция отключена.

Опция Значение
Список опций (параметров) директивы Options
ExecCGI Исполнение CGI-скриптов в папке
FollowSymLinks Переходить по символическим(мягким) ссылкам
Includes Использование SSI в папке
IncludesNOEXEC Использование SSI в папке, кроме комнды выполнения внешней программы (#exec cmd)
Indexes Отображение веб-представления папки
MultiViews Использование в веб-представлении папки модуля mod_negotiation
All Все перечисленные опции, кроме MultiViews

Таким образом, чтобы включить отображение веб-папки, необходимо указать в файле .htaccess следующее:

  1. Options +Indexes

Также часто требуется разрешить просматривать список файлов, но что бы при этом часть файлов определенного формата не отображалась. Для этого применяется директива IndexIgnore. Например, запретим для отображения все файлы с расширением php:

  1. Options +Indexes
  2. IndexIgnore *.php

Третий возможный вариант возникает когда в каталоге отсутствует индексный файл, а веб-представление этого каталога запрещено. При этом выдаётся сообщение «Forbidden». Следует отметить что на самом деле доступ к каталог не запрещён, можно получить любой файл этого каталога, явно указав в запросе его имя. Запрещённым является в такой ситуации лишь просмотр самого каталога.

Варианты индивидуальных заданий

Вариант 1

  1. Задайте имя индексного файла: main.html
  2. Разрешите веб-представление каталога и запретите проход по символическим ссылкам
  3. Запретите отображение файлов *.cfg

Вариант 2

  1. Задайте имя индексного файла: filelist.txt
  2. Запретите веб-представление каталога и проход по символическим ссылкам
  3. Запретите отображение файлов *.pl

Вариант 3

  1. Задайте имя индексного файла: 1.php
  2. Разрешите веб-представление каталога и проход по символическим ссылкам
  3. Запретите отображение файлов *.sh

Вариант 4

  1. Задайте имя индексного файла: index.php
  2. Запретите веб-представление каталога и разрешите проход по символическим ссылкам
  3. Запретите отображение файлов *.txt

Вариант 5

  1. Задайте имя индексного файла: main.php
  2. Разрешите веб-представление каталога и проход исполнение CGI-скриптов в каталоге
  3. Запретите отображение файлов *.exe

Баннер SGU.RU