Программное обеспечение компьютерных сетей и информационных систем. Баканов В.М. - 91 стр.

UptoLike

Составители: 

- 91 -
ра). От подобного недостатка свободен метод ISAPI, основанный на обработ-
ке запросов динамически загружаемыми (из DLL-библиотек) функциями (не-
достаток - т.к. ISAPI-расширение выполняется в том же адресном простран-
стве, что и сам WEB-сервер, критическая ошибка ISAPI-приложения обычно
вызывает крах сервера). В отличие от CGI, ISAPI-приложение получает дан-
ные не из стандартного потока, а
с помощью специально предназначенной
для этого функции интерфейса ISAPI; вместо стандартного потока вывода
также применяется специальная функция [15].
Некоторые сервера (например, Apache) содержат встроенный Perl, при
этом для каждого поступающего CGI-запроса сервер создает новый поток
(вместо нового процесса); это значительно ускоряет выполнение CGI-
запросов указанным сервером. Для работы под Windows’NT разработаны (см.
www.activeware.com) пакеты PerlScript (разработка
сценариев ActiveX) и
PerlIS (динамически вызываемая библиотека ISAPI-интерфейса [20].
Известны как расширения ISAPI (по функциям аналогичны CGI-
расширениям сервера), так и фильтры ISAPI (фактически являющиеся
брандмауэрами, применяются для шифрования или перекодировки прохо-
дящих через сервер данных, компрессии информации, сбора статистических
данных о пользователях, проверки прав доступа и др.).
При использования метода ISAPI имя соответствующего DLL-файла
описывается в параметре ACTION формы (аналогично CGI), также описыва-
ется параметр METHOD, однако сами присланные на сервер данные могут
быть получены с помощью специально зарезервированных функций
GetServerVariable (чтение значений переменных среды) и ReadClient (соб-
ственно чтение присланных данных), отсылка же данных (как и при исполь-
зовании CGI, обычно в виде динамически создаваемых HTML-файлов)
про-
изводится функциями WriteClient и ServerSupportFunction.
Желающим более подробно ознакомиться с возможностями серверных
расширений CGI и ISAPI рекомендуются работы [6,15,19].
Заметим, что CGI- и ISAPI-программы потенциально являются источ-
никами снижения безопасности функционирования WEB-серверов. Напри-
мер, можно советовать работу [20] для ознакомления с началами обеспечения
безопасности выполнения CGI-сценариев на Perl; ниже приведено несколько
WEB-адресов, посвященных проблеме
безопасности
www.w3.org/Security/Faq/www-security-faq.html
www.perl/com/CPAN-local/doc/FAQs/cgi/perl-cgi-faq.html
stars.com/Authoring/Scripting/Sequrity
www.go2net.com/people/paulp/cgi-sequrity/safe-cgi.txt
Мощным средством для упрощения процесса реализации функциональ-
ности и расширения возможностей технологии CGI является язык PHP/FI
                                    - 91 -


ра). От подобного недостатка свободен метод ISAPI, основанный на обработ-
ке запросов динамически загружаемыми (из DLL-библиотек) функциями (не-
достаток - т.к. ISAPI-расширение выполняется в том же адресном простран-
стве, что и сам WEB-сервер, критическая ошибка ISAPI-приложения обычно
вызывает крах сервера). В отличие от CGI, ISAPI-приложение получает дан-
ные не из стандартного потока, а с помощью специально предназначенной
для этого функции интерфейса ISAPI; вместо стандартного потока вывода
также применяется специальная функция [15].
     Некоторые сервера (например, Apache) содержат встроенный Perl, при
этом для каждого поступающего CGI-запроса сервер создает новый поток
(вместо нового процесса); это значительно ускоряет выполнение CGI-
запросов указанным сервером. Для работы под Windows’NT разработаны (см.
www.activeware.com) пакеты PerlScript (разработка сценариев ActiveX) и
PerlIS (динамически вызываемая библиотека ISAPI-интерфейса [20].
     Известны как расширения ISAPI (по функциям аналогичны CGI-
расширениям сервера), так и фильтры ISAPI (фактически являющиеся
брандмауэрами, применяются для шифрования или перекодировки прохо-
дящих через сервер данных, компрессии информации, сбора статистических
данных о пользователях, проверки прав доступа и др.).
     При использования метода ISAPI имя соответствующего DLL-файла
описывается в параметре ACTION формы (аналогично CGI), также описыва-
ется параметр METHOD, однако сами присланные на сервер данные могут
быть получены с помощью специально зарезервированных функций
GetServerVariable (чтение значений переменных среды) и ReadClient (соб-
ственно чтение присланных данных), отсылка же данных (как и при исполь-
зовании CGI, обычно в виде динамически создаваемых HTML-файлов) про-
изводится функциями WriteClient и ServerSupportFunction.
     Желающим более подробно ознакомиться с возможностями серверных
расширений CGI и ISAPI рекомендуются работы [6,15,19].
     Заметим, что CGI- и ISAPI-программы потенциально являются источ-
никами снижения безопасности функционирования WEB-серверов. Напри-
мер, можно советовать работу [20] для ознакомления с началами обеспечения
безопасности выполнения CGI-сценариев на Perl; ниже приведено несколько
WEB-адресов, посвященных проблеме безопасности

  •   www.w3.org/Security/Faq/www-security-faq.html
  •   www.perl/com/CPAN-local/doc/FAQs/cgi/perl-cgi-faq.html
  •   stars.com/Authoring/Scripting/Sequrity
  •   www.go2net.com/people/paulp/cgi-sequrity/safe-cgi.txt

    Мощным средством для упрощения процесса реализации функциональ-
ности и расширения возможностей технологии CGI является язык PHP/FI