Безопасность активного содержимого
Совместимость с приложением
Для вызова нужного интерфейса ISAPI или программы CGI при обработке определенных типов файлов их расширения связываются с соответствующими программами. При получении сервером адреса URL, обозначающего файл со связанным расширением, сервер вызовет связанную с файлом программу для обработки запроса. IIS изначально настроен на поддержку общих связей с приложениями. Для корректной работы сценариев нужно добавить или изменить связи между файловыми расширениями и программами/интерпретаторами, которые их обрабатывают. (Необходимость устранения любых ненужных связей обсуждалась в "Подготовка и укрепление веб-сервера" и "Безопасность FTP, NNTP и других служб IIS" .)
Связи с приложением устанавливаются в стартовой точке приложения на вкладке App Mappings (Связь с приложениями) окна Application Configuration (Настройка приложения). Выполните следующие действия.
- Откройте Internet Services Manager (Диспетчер служб интернета) и выберите веб-сайт или папку стартовой точки приложения.
- Откройте окно Properties (Свойства), щелкнув правой кнопкой мыши на объекте и выбрав команду Properties.
- Откройте вкладку Home Directory (Домашний каталог), Virtual Directory (Виртуальный каталог) или Directory (Каталог).
- Нажмите на кнопку Configuration (Настройка) для открытия окна Application Configuration (Настройка приложения) и откройте вкладку App Mappings (Связь с приложениями) (см. рис. 11.3). На рисунке 11.3 показано, что IIS вызовет программу Perl.exe для обработки любых запросов с файловыми расширениями .pl.
- Для добавления связи с приложением нажмите на кнопку Add (Добавить). Откроется диалоговое окно Add/Edit Application Extension Mapping (Добавить/Изменить связь приложения с расширением) (см. рис. 11.4).
- В поле Executable (Исполняемый файл) введите путь к нужной программе ISAPI или CGI (.exe или .dll). Она должна располагаться в локальном каталоге на веб-сервере.
- В поле Exstension (Расширение) введите файловое расширение для связи с программой, указанной в поле Executable (Исполняемый файл). В окне на рисунке 11.4 добавлен тип файлов .inc.
- Укажите команды, которые можно передавать приложению. Не выбирайте опцию All Verbs (Все команды), а добавьте только разрешенные команды в поле Limit To (Разрешить). Для ASP разрешите команды HTTP GET, HEAD и POST, указав их через запятую. Если все сценарии размещены в одной папке, не выбирайте опцию Script Engine (Машина сценариев). Эта опция требуется для выполнения приложений в папке без разрешений Execute (Выполнение), что существенно ослабляет контроль над разрешениями.
Совет. Обратитесь к разделу "Инструмент безопасности URLScan" в этой лекции для получения подробной информации о том, какие команды необходимо разрешать для работы отдельных приложений.
- Отметьте опцию Check That File Exists (Проверить наличие этого файла), чтобы IIS проверял наличие запрошенного файла сценария и разрешение на доступ к нему. Если сценарий не существует, или пользователь не имеет соответствующего разрешения, то в браузере отобразится сообщение с предупреждением, и механизм обработки сценариев не запустится. Эта опция полезна для сценариев, связанных не с CGI-программами, а, например, с интерпретатором Perl, который не отправляет ответ CGI в случае недоступности файла сценария. Так как сценарий открывается дважды – сервером и машиной сценариев – произойдет некоторое снижение производительности.
Для удаления связи с приложением выберите расширение файла на вкладке App Mappings (Связь с приложениями) и нажмите на кнопку Remove (Удалить).