Опубликован: 16.10.2006 | Доступ: свободный | Студентов: 2196 / 318 | Оценка: 4.44 / 4.23 | Длительность: 26:41:00
Лекция 11:

Безопасность активного содержимого

Совместимость с приложением

Для вызова нужного интерфейса ISAPI или программы CGI при обработке определенных типов файлов их расширения связываются с соответствующими программами. При получении сервером адреса URL, обозначающего файл со связанным расширением, сервер вызовет связанную с файлом программу для обработки запроса. IIS изначально настроен на поддержку общих связей с приложениями. Для корректной работы сценариев нужно добавить или изменить связи между файловыми расширениями и программами/интерпретаторами, которые их обрабатывают. (Необходимость устранения любых ненужных связей обсуждалась в "Подготовка и укрепление веб-сервера" и "Безопасность FTP, NNTP и других служб IIS" .)

Связи с приложением устанавливаются в стартовой точке приложения на вкладке App Mappings (Связь с приложениями) окна Application Configuration (Настройка приложения). Выполните следующие действия.

  1. Откройте Internet Services Manager (Диспетчер служб интернета) и выберите веб-сайт или папку стартовой точки приложения.
  2. Откройте окно Properties (Свойства), щелкнув правой кнопкой мыши на объекте и выбрав команду Properties.
  3. Откройте вкладку Home Directory (Домашний каталог), Virtual Directory (Виртуальный каталог) или Directory (Каталог).
  4. Нажмите на кнопку Configuration (Настройка) для открытия окна Application Configuration (Настройка приложения) и откройте вкладку App Mappings (Связь с приложениями) (см. рис. 11.3). На рисунке 11.3 показано, что IIS вызовет программу Perl.exe для обработки любых запросов с файловыми расширениями .pl.
  5. Для добавления связи с приложением нажмите на кнопку Add (Добавить). Откроется диалоговое окно Add/Edit Application Extension Mapping (Добавить/Изменить связь приложения с расширением) (см. рис. 11.4).
  6. В поле Executable (Исполняемый файл) введите путь к нужной программе ISAPI или CGI (.exe или .dll). Она должна располагаться в локальном каталоге на веб-сервере.
  7. В поле Exstension (Расширение) введите файловое расширение для связи с программой, указанной в поле Executable (Исполняемый файл). В окне на рисунке 11.4 добавлен тип файлов .inc.
    Убедитесь в том, что установлены связи только с теми приложениями, которые используются IIS

    Рис. 11.3. Убедитесь в том, что установлены связи только с теми приложениями, которые используются IIS
    Обеспечьте выполнение кода, содержащегося в файлах вставки, перед отправкой клиенту, установив связь файлов .INC с ASP

    Рис. 11.4. Обеспечьте выполнение кода, содержащегося в файлах вставки, перед отправкой клиенту, установив связь файлов .INC с ASP
  8. Укажите команды, которые можно передавать приложению. Не выбирайте опцию All Verbs (Все команды), а добавьте только разрешенные команды в поле Limit To (Разрешить). Для ASP разрешите команды HTTP GET, HEAD и POST, указав их через запятую. Если все сценарии размещены в одной папке, не выбирайте опцию Script Engine (Машина сценариев). Эта опция требуется для выполнения приложений в папке без разрешений Execute (Выполнение), что существенно ослабляет контроль над разрешениями.

    Совет. Обратитесь к разделу "Инструмент безопасности URLScan" в этой лекции для получения подробной информации о том, какие команды необходимо разрешать для работы отдельных приложений.

  9. Отметьте опцию Check That File Exists (Проверить наличие этого файла), чтобы IIS проверял наличие запрошенного файла сценария и разрешение на доступ к нему. Если сценарий не существует, или пользователь не имеет соответствующего разрешения, то в браузере отобразится сообщение с предупреждением, и механизм обработки сценариев не запустится. Эта опция полезна для сценариев, связанных не с CGI-программами, а, например, с интерпретатором Perl, который не отправляет ответ CGI в случае недоступности файла сценария. Так как сценарий открывается дважды – сервером и машиной сценариев – произойдет некоторое снижение производительности.

Для удаления связи с приложением выберите расширение файла на вкладке App Mappings (Связь с приложениями) и нажмите на кнопку Remove (Удалить).