IIS - Настройка приложений CGI
IIS поддерживает приложения CGI. В данном разделе приводится административная информация по установке и конфигурированию приложений CGI на веб-сервере. Более общие сведения о программировании приложений CGI приведены в электронной библиотеке корпорации Майрософт MSDN.
Программы CGI выполняются, когда веб-сервер получает адрес URL, содержащий имя программы CGI и параметры, требуемые программой. Если программа CGI скомпилирована в исполняемый файл (.exe), каталог, содержащий программу, должен иметь разрешение «Выполнение», чтобы пользователи могли выполнять программу. Если программа CGI записана в виде сценария, например сценария на языке Perl, каталогу можно предоставить разрешение «Выполнение» или «Сценарий». Чтобы использовать разрешение «Сценарий», интерпретатор сценариев должен быть помечен как обработчик сценариев.
Если планируется разработка новых приложений CGI, корпорация Майкрософт предлагает несколько альтернатив, которые следует рассмотреть. Чтобы приложение выполнялось быстрее, рассмотрите возможность разработки расширения ISAPI. Чтобы упростить процесс разработки, можно разработать приложение ASP. Использование ASP особенно привлекательно для новичков, поскольку в этом случае отпадает необходимость решения многих рутинных задач, традиционно связанных с написанием приложений CGI, например разбор заголовков HTTP. Более подробные сведения см. в разделе Active Server Pages.
Чтобы установить и настроить приложение CGI:- Настройте каталог для программ CGI. Для дополнительной безопасности следует отделить программы CGI от файлов содержимого. Нет необходимости называть каталог Cgi-bin, однако по желанию он может быть назван и так. См. раздел Создание виртуальных каталогов.
- Если программы CGI являются сценариями, получите и установите соответствующий интерпретатор сценариев. Например, для запуска сценариев, написанных на языке Perl, необходимо получить интерпретатор Perl.
- Если программы CGI являются файлами .exe, предоставьте каталогу разрешение «Выполнение». Если программы CGI являются сценариями, можно предоставить каталогу разрешение «Выполнение» или «Сценарий». См. раздел Управление доступом.
- Для сценариев CGI установите соответствие между расширением имени файла сценария и интерпретатором сценариев.
- Установите разрешения NTFS.
Операционная система Windows не обеспечивает версии Perl, SED или AWK. Интерпретаторы могут быть получены от независимых разработчиков.
Если выбрано разрешение «Сценарий», в окне свойств каталога необходимо пометить интерпретатор сценариев как обработчик сценариев. Только интерпретаторы, помеченные как обработчики сценариев, могут выполняться в этом каталоге. Исполняемые файлы (.dll и .exe) не могут быть выполнены непосредственно, то есть запрос обозревателя не может запустить исполняемый файл на веб-сервере включением имени программы в адрес URL. Использование разрешения «Сценарий» вместе с параметром Обработчик сценариев позволяет размещать файлы содержимого (например файлы .htm или .gif) в том же каталоге, что и сценарии CGI. Файлы содержимого будут отображаться в обозревателе, а сценарии будут выполняться, но нельзя запустить программу без соответствующих полномочий или отобразить команды сценария в обозревателе.
Внимание! Если каталогам, содержащим исполняемые файлы, присвоено разрешение «Чтение», посетители узла смогут загружать и выполнять эти исполняемые файлы. Для целей безопасности оптимальным является хранение исполняемых файлов в отдельном каталоге, не имеющем разрешения «Чтение».
IIS сопоставляет расширения имени файла с интерпретатором. Например, если используются сценарии на языке Perl, хранимые в файлах с расширением .pl, сопоставьте расширение .pl с программой, которая исполняет сценарии на языке Perl. Сопоставьте файлы .bat и .cmd с интерпретатором команд (Cmd.exe)/ См. раздел Сопоставление приложений.
Если используются разрешения доступа NTFS, убедитесь, что все пользователи, кому необходимо выполнять программы, имеют для каталога разрешение «Выполнение». Если веб-узел допускает анонимных пользователей, проверьте, что анонимный пользователь (учетная запись IUSR_ИмяКомпьютера) имеет разрешение «Выполнить».
IIS поддерживает большинство стандартных переменных среды для сервера.
Если сценарий обращается к сценарию, сопоставленному Cmd.exe, выполняющемуся на удаленном сервере, рабочий каталог по умолчанию устанавливается как %SYSTEM32% на локальном компьютере. Стандартное значение %SYSTEM32% — \Winnt\System32 (для Windows 2000) and \Win95\System (для Windows 95 или более поздней версии).
Для большей безопасности веб-сервер не передает специальные символы интерпретатора команд сопоставленному приложению CGI. Перечисленные ниже символы по умолчанию не могут быть включены в адрес URL, вызывающий приложение CGI:
| ( , ; % < >
Использование некоторых специальных символов может быть разрешено (хотя это и не рекомендуется). Для этого нужно изменить значение параметра AllowSpecialCharsInShell в системном реестре. Более подробные сведения см. в разделе Записи реестра для службы WWW.