Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Администрирование веб-узла.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
770 Кб
Скачать
☆

Глава 8

Публикация данных и приложений

Службы узла Web для Windows NT позволяют публиковать как данные, так и приложения. Таким образом, узел Web может содержать все, что угодно, от статических страниц до интерактивных приложений. Кроме того, можно осуществлять поиск, выборку и запись информации в базы данных.

Этой главе объясняется как:

  1. подготовить компьютер и данные для публикации;

  2. установить и использовать интерактивные приложения;

  3. публиковать данные с помощью технологии ODBC (Open Database Connectivity) — технологии совместимых источников данных.

Подготовка данных для публикации

Большинство страниц Web имеет формат HTML (Hypertext Markup Language). Файлы HTML представляют собой текстовые файлы ASCII, содержащие коды инструкций форматирования и гипертекстовые ссылки. Спецификации языка HTML постоянно изменяются. Для точной разметки собственных станиц HTML следует ознакомиться с последними спецификациями HTML, доступными через Интернет.

Создание файлов формата HTML

Для создания и изменения файлов HTML можно применять любой текстовый редактор, в том числе блокнот Windows или Write; однако удобнее пользоваться специальными редакторами документов HTML, такими как Microsoft® FrontPage™ или Internet Assistant для Microsoft® Word.

С помощью редактора документов HTML можно создавать гиперссылки на другие файлы. Для вставки в документ изображений и звукозаписей следует установить в системе соответствующее программное обеспечение.

Публикация документов HTML и файлов других форматов

Документы HTML могут содержать изображения и звукозаписи, а также ссылки на файлы Microsoft® Office и файлы других форматов. Для просмотра файла с форматом, отличным от HTML, удаленный пользователь должен установить на компьютере соответствующее приложение. Например, если все удаленные пользователи имеют Microsoft Word, в публикуемых документах можно использовать ссылки на файлы с расширением DOC. Пользователь может открыть документ Word на своем компьютере щелчком по ссылке.

После создания документа HTML или документа другого формата скопируйте файл в основной каталог Inetsrv\Wwwroot или назначьте каталог, содержащий публикуемый файл, основным каталогом.

Настройка отображения MIME

Если узел Web содержит файлы, использующие разные форматы, необходимо выполнить настройку отображения MIME (Multipurpose Internet Mail Extension). Если какой-либо формат будет пропущен при настройке, система просмотра не сможет загрузить такой файл. Параметры отображения MIME, используемые по умолчанию, см. в системном реестре Windows NT.

Чтобы настроить отображение MIME, запустите редактор реестра (Regedt32.exe) и откройте

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters\MimeMap

Добавьте значение REG_SZ, используя следующий синтаксис:

<тип mime>,<расширение имени>,<неиспользуемый аргумент>,<тип Gopher>

Например:

text/html,htm,/unused,1 image/jpeg,jpeg,/unused,5

Оставьте пустой строку данных, связанную с новым значением. При отсутствии отображения MIME для заданного расширения, по умолчанию используется тип MIME для расширения в виде звездочки (*). Например, чтобы обработать запрос на файл Current.vgr (для расширения VGR отсутствует отображение MIME), сервер будет использовать тип MIME, указанный для звездочки (двоичные данные). Как правило, это приводит к сохранению файла на диске.

Вставка файлов с помощью оператора include

Перед отправкой в файлы HTML можно поместить информацию общего характера. Эта возможность предусмотрена для добавления на разные страницы HTML одинаковых объектов, например сведений об авторах или ссылок на основную страницу.

Оператор include имеет следующий формат:

<!--#include file="значение"-->

Аргумент значение содержит относительный или полный путь из основного каталога службы WWW.

Например, чтобы включить в каждый документ HTML ссылку на основную страницу:

1. Создайте файл Linkhome.htm с инструкциями HTML для создания повторяемого объекта, например кнопки для перехода на основную страницу. В этом случае файл может содержать следующее:

<A HREF="/homepage.htm"><IMG SRC="/images/button_h.gif"></A>

2. При создании документов Web присвойте файлам расширение STM (вместо HTM или HTML).

Примечание. Расширение STM указывает на наличие в файле оператора include. Если файл имеет расширение HTM или HTML, оператор include не будет обрабатываться.

Применение файлов STM может повлиять на производительность системы. Используйте это расширение только в случае необходимости.

В системном реестре Windows NT можно изменить расширение STM на любое другое, кроме HTM и HTML. Подробности см. в разделе системного реестра ServerSideIncludesExtension в главе 10 Работа с данными системного реестра.

3. В каждый файл с расширением STM вставьте строку с оператором include file. Например:

Вы можете вернуться к <!--#include file="/linkhome.htm"--> в любой момент времени.

Все пути составляются относительно основного каталога WWW и могут включать виртуальные каталоги.

Публикация динамических приложений

Одним из значимых средств, предоставляемых службами узла Web, является технология создания приложений и сценариев, которые могут запускать щелчком ссылки HTML или посредством заполнения и отправки формы HTML. С помощью языков программирования, например C или Perl, можно создавать приложения или сценарии для работы с динамическими страницами.

Создание приложений и сценариев

Интерактивные приложения и сценарии могут быть реализованы на любом 32-разрядном языке программирования, например на C или Perl, или на языке командных файлов Windows NT (расширение BAT или CMD). При создании приложений и сценариев можно использовать один из двух поддерживаемых интерфейсов ISAPI (Microsoft Internet Server Application Programming Interface) или CGI (Common Gateway Interface). Документация на ISAPI распространяется по подписке на MSDN (Microsoft Developer Network). Введение в CGI изложено в этой главе, а дополнительные сведения можно получить по Интернету. Командные файлы могут содержать любые правильные инструкции, выполняемые из командной строки.

Приложения ISAPI компилируются в виде библиотек динамической компоновки (DLL) и загружаются для выполнения службой WWW. Поскольку такие коды находятся в памяти резидентно, программы ISAPI работают значительно быстрее приложений CGI.

Новая версия языка Perl с поддержкой ISAPI

Независимый производитель программного обеспечения Hip, Inc., развивающий язык Perl для платформы Win32, разработал версию Perl со встроенной поддержкой ISAPI. Таким образом, сценарии Perl теперь выполняются быстрее, чем ранее. Несопровождаемая версия ISAPI Perl доступна на узле http://www.perl.hip.com/. Вопросы (в особенности по существующим сценариям Perl) можно посылать по адресу perlis@mail.hip.com.

Интерфейс ISAPI (Internet Server API)

Интерфейс ISAPI для Windows NT применяется для разработки приложений Web, которые пользователи могут запускать на вашем узле Web с помощью заполнения формы HTML или щелчком ссылки на странице HTML. Удаленное приложение может принимать в качестве аргументов пользовательские данные, выполнять необходимые действия и возвращать результаты на страницу HTML или пересылать их в базу данных.

Приложения ISAPI представляют собой библиотеки динамической компоновки (DLL), выполняемые на сервере Web. Приложения ISAPI работают быстрее сценариев CGI (Common Gateway Interface), поскольку находятся в памяти сервера резидентно и каждый новый запрос не приводит к запуску отдельного процесса.

Средства ISAPI позволяют выполнять предварительную обработку запросов и завершающую обработку ответов, реализуя конкретный для данного узла способ работы с запросами и ответами. Фильтры ISAPI применяются в пользовательских приложениях, осуществляющих проверку подлинности, доступ к ресурсам или ведение журнала.

С помощью фильтров ISAPI и приложений можно создать очень сложный узел. Расширения ISAPI используются в интерактивных системах совместно с приложением Internet Database Connector.

Программирование ISAPI подробно изложено в пакете Microsoft Win32 SDK (Software Development Kit), доступном через MSDN. Дополнительные сведения о получении ISAPI SDK см. в главе Перед началом работы этого руководства.

Интерфейс CGI (Common Gateway Interface)

Интерфейс CGI (Common Gateway Interface) представляет собой набор спецификаций для обмена данными между средством просмотра, сервером Web и приложением CGI. Средство просмотра Web клиента может запускать приложение CGI с помощью заполнения формы HTML или щелчком ссылки на странице HTML. Подобно фильтру ISAPI приложение CGI может принимать данные от клиента, выполнять предписанные действия и возвращать результаты обработки на страницу HTML или отправлять в базу данных. Поскольку приложения CGI часто реализуются на языке сценария, например Perl, они называются сценариями CGI.

Службы узла Web могут использовать большинство 32-разрядных приложений, работающих в Windows NT и удовлетворяющих спецификациям CGI.

На следующем рисунке показано как средство просмотра, сервер и приложение CGI обмениваются данными в соответствии со спецификациями CGI. Остальная часть настоящего раздела раскрывает содержание пяти этапов, показанных на рисунке.

Клиент посылает запрос

Средство просмотра клиента может отправить на сервер запрос CGI любым из следующих двух методов:

GET

Данные добавляются в адрес URL и передаются на сервер.

POST

Данные отправляются на сервер в поле сообщения HTTP (таким образом преодолеваются ограничения метода GET).

Клиент инициирует процесс CGI щелчком на странице HTML:

  1. гиперссылки, запускающей сценарий непосредственно;

  2. кнопки Submit или Отправить в форме HTML;

  3. объекта, найденного с помощью метода GET;

  4. объекта поиска (т.е. объекта, использующего ссылку ISINDEX).

Сервер получает запрос

Адрес URL, который средство просмотра клиента посылает серверу, содержит имя исполняемого сценария CGI или приложения. Сервер проверяет записи системного реестра в разделе Script Mapping для поиска отображения расширения имени файла (т.е. программы, запускаемой для выполнения этого файла). В разделе Script Mapping системного реестра сервера содержатся отображения для файлов с расширениями CMD и BAT, которые обрабатываются Cmd.exe, и для файлов IDC, запускающих Internet Database Connector. Чтобы запустить приложение CGI без отображения расширения, добавьте соответствующую запись для этого приложения в раздел реестра. Например, чтобы запустить сценарий Perl, добавьте следующую запись:

.pl: REG_SZ: C:\RESKIT\PERL\BIN\PERL.EXE %s %s

Здесь

  1. \Reskit\Perl\Bin\ — каталог, содержащий исполняемую программу;

  2. Perl.exe — исполняемая программа;

  3. первый аргумент %s — преобразованный путь сценария PERL (адрес URL преобразован в локальный путь);

  4. второй аргумент %s — данные из адреса URL (строка запроса), которые передаются в командную строку, если строка запроса не содержит знак равенства (=).

Сервер передает запрос приложению

Сервер передает данные приложению CGI посредством переменных среды, затем запускает приложение. Некоторые из этих переменных связаны с сервером; большинство приходит из средства просмотра клиента и имеет отношение либо непосредственно к средству просмотра клиента, либо к посланному запросу. См. таблицу в конце этой главы с неполным списком переменных среды.

Приложение CGI возвращает данные серверу

Приложение выполняет обработку данных. Если возможно, приложение выводит данные в стандартный выходной поток (STDOUT). Возвращаемые данные должны иметь следующий формат:

1. Первая строка или строки директив сервера должны содержать тип MIME, директиву Location (указывающую или возвращающую клиенту другой документ) и директиву Status.

2. После директив сервера должна следовать пустая строка.

3. За пустой строкой должны следовать данные приложения.

Сервер возвращает данные клиенту

Сервер принимает данные из потока STDOUT и добавляет к ним стандартный заголовок HTTP. Затем сервер передает сообщение HTTP обратно клиенту.

Дополнительные сведения о CGI, см. в спецификациях CGI по адресу http://hoohoo.ncsa.uiuc.edu/cgi/.

Интерфейс CGI и службы узла Web

Служба WWW поддерживает спецификацию CGI (Common Gateway Interface). Применительно к реализации CGI в службах узла Web необходимо знать следующее:

  1. для этой версии только 32-разрядные приложения CGI работают со службой WWW;

  2. переменная среды REMOTE_USER отсутствует при анонимном подключении к серверу;

  3. все переменные, определенные для ISAPI приложений, передаются приложению CGI как переменные среды.

Как правило, приложения CGI являются программами, выполняемыми автономно, в отличие от приложений ISAPI, которые обычно загружаются в виде библиотек DLL и, следовательно, являются расширениями сервера.

Рекомендации по защите данных при использовании сценариев и приложений

Исполняемые программы CGI (Common Gateway Interface) следует применять с максимальной предосторожностью, чтобы уменьшить вероятность нарушения системы защиты данных на сервере. В виртуальных каталогах, содержащих приложения CGI или ISAPI (Internet Server API), предоставляйте разрешение только на выполнение файлов.

Настоятельно рекомендуется настроить отображение расширений имен файлов (для файлов сценариев). Отображение расширений имен файлов позволит автоматически выбрать интерпретатора исполняемого файла клиентского запроса, например Cmd.exe.

Каталоги документов World Wide Web должны иметь разрешение только на чтение. Любые исполняемые файлы, предназначенные для запуска с дисков файловой системы Windows NT (NTFS), должны иметь доступ только на чтение.

Командные файлы можно выполнять аналогично файлам CGI, но с максимальной предосторожностью, чтобы уменьшить вероятность нарушения системы защиты данных на сервере.

Примечание. Исполняемые файлы CGI могут иметь расширение EXE или CGI.

Разрешение выполнения приложений ISAPI

Службы узла Web открывают ISAPI приложения по запросу пользователя с учетом установленных параметров защиты. Проверка доступа выполняется для каждого пользовательского запроса. Для запрета выполнения приложений ISAPI, например Internet Database Connector, можно применять разрешения NTFS.

Например, чтобы защитить Internet Database Connector без проверки разрешений на файл с расширением IDC, можно в системе NTFS предоставить только соответствующим пользователям разрешение на выполнение файла Inetsrv\Server\Httpodbc.dll. Файл Httpodbc.dll содержит библиотеку динамической компоновки Internet Database Connector. Всякий раз, когда пользователь запросит Internet Database Connector, сервер проверит его права. Приложение будет запущено, если этому пользователю предоставлено разрешение на его выполнение.

Примечание. Если приложение ISAPI запущено, оно будет оставаться в памяти компьютера до тех пор, пока служба WWW не будет остановлена. Службы узла Web не отслеживают изменения описателя защиты после запуска приложения ISAPI. Если разрешения на файл ISAPI изменяются после запуска приложения, необходимо перезапустить службу WWW.

Соблюдайте осторожность при работе с таблицами управления доступом (ACL) каталога Winnt и его подкаталогами. Некоторые приложения ISAPI и базы данных требуют доступа к файлам и библиотекам динамической компоновки (DLL) в этих каталогах.

Примечание. Библиотеки динамической компоновки приложения ISAPI имеют расширение DLL или ISA.

Установка приложения для служб узла Web

Поместите свое приложение или сценарий в каталог Scripts (виртуальный каталог для приложений). В этом виртуальном каталоге установлено разрешение на выполнение.

Необходимо, чтобы каждый процесс, начатый приложением, использовал учетную запись с адекватными разрешениями. Если приложение взаимодействует с другими файлами, учетная запись, используемая программой, должна иметь соответствующие разрешения на доступ к этим файлам. По умолчанию приложения, запускаемые по учетной записи IUSR_имякомпьютера, должны иметь разрешения на выполнение и администрирование.

Выполнение приложения

Если приложение не предполагает ввода данных, для его запуска обычно создается ссылка в файле HTML. Если приложение принимает данные от пользователя, следует применить форму HTML. В других случаях можно послать запрос универсального указателя ресурсов (адрес URL), обычно содержащий параметры для вызова программы.

Ссылка HTML на приложение, которое не требует ввода данных от пользователя, может иметь следующий вид:

http://www.company.com/scripts/catalog.exe

где Scripts — виртуальный каталог для интерактивных приложений.

При создании приложений, требующих ввода данных от пользователя, необходимо изучить как формы HTML, так и использование форм с ISAPI или CGI. Информация на эту тему широко доступна на Интернете и в других источниках.

Назначение интерпретаторов приложений

Поскольку приложение может быть реализовано почти на любом языке программирования, службы узла Web используют расширение имени файла для определения интерпретатора для каждого типа файлов. Заданные по умолчанию назначения интерпретаторов перечислены ниже. Для создания дополнительных соответствий можно использовать редактор реестра.

Расширение Интерпретатор

BAT, CMD Cmd.exe

IDC Httpodbc.dll

EXE, COM Операционная система

Обеспечение безопасности

Если удаленным пользователям предоставлено право выполнения приложений на вашем компьютере, существует риск недозволенного доступа в систему. Службы узла Web по умолчанию настроены таким образом, чтобы уменьшить вероятность злонамеренного вторжения.

Во-первых, ваши приложения находятся в виртуальном каталоге Scripts. Только администратор может добавлять программы в каталог, помеченный как каталог только для выполнения. Таким образом, пользователи не смогут скопировать свое приложение в этот каталог и затем выполнить его на вашем компьютере, не имея прав администратора.

Для учетной записи IUSR_имякомпьютера в виртуальном каталоге рекомендуется иметь разрешения на чтение и выполнение, например для запуска сценариев Perl (расширение PL) и файлов Internet Database Connector (расширения IDC и HTX); полное управление осуществляет только администратор. Не предоставляйте разрешение на запись в каталог, чтобы предотвратить копирование на ваш сервер программ злоумышленников.

Во-вторых, если служба WWW настроена на работу только с анонимными подключениями, все запросы от удаленных пользователей используют учетную запись IUSR_имякомпьютера. По умолчанию пользователь, вошедший в систему по учетной записи IUSR_имякомпьютера, не сможет удалять и изменять файлы системы Windows NT (NTFS), если только администратор не назначил этой записи соответствующие разрешения. Таким образом, даже если какая-либо программа была скопирована на ваш компьютер, она не сможет причинить большого вреда, потому что ее возможности будут ограничены разрешениями на доступ, предоставленными учетной записи IUSR_имякомпьютера.

Публикация информации и использование базы данных

С помощью службы WWW и драйверов ODBC (Open Database Connectivity), входящих в состав служб узла Web, можно:

  1. создавать страницы Web с информацией, содержащейся в базах данных;

  2. предоставлять пользователю возможность записывать, обновлять и удалять сведения в базе данных непосредственно со страницы Web;

  3. выполнять инструкции языка SQL (Structured Query Language).

Как работает приложение Internet Database Connector

Принцип работы служб узла Web при осуществлении доступа к базе данных показан на следующей диаграмме.

Средства просмотра Web (например приложение Internet Explorer или средства просмотра других компаний, таких как Netscape) посылают запросы серверу Интернета, используя протокол HTTP. Сервер Интернета отвечает документом, форматируемым на языке гипертекстовой разметки HTML. Доступ к базам данных осуществляется через компонент служб узла Web, называемый приложением Internet Database Connector. Приложение Internet Database Connector (файл Httpodbc.dll) является библиотекой динамической компоновки ISAPI и использует для доступа к базам данных технологию ODBC.

Следующий рисунок раскрывает компоненты, необходимые для доступа в базы данных из служб узла Web.

Приложение Internet Database Connector использует два типа файлов для управления доступом к базе данных и созданием ответной страницы Web, а именно: файлы Internet Database Connector (IDC) и файлы на расширении языка HTML (HTX).

Файлы приложения Internet Database Connector содержат необходимую информацию, чтобы соединиться с соответствующим источником данных ODBC и выполнить оператор SQL. Файл приложения Internet Database Connector содержит также имя и местоположение файла расширения языка HTML.

Файл расширения языка HTML представляет собой шаблон для документа HTML, который будет возвращен средству просмотра Web после получения результатов запроса от базы данных.

Установка ODBC и создание источников данных

В процессе установки служб узла Web можно скопировать на диск компоненты ODBC версии 2.5 (флажок Драйверы ODBC и администрирование). Эта версия ODBC поддерживает имена системных источников данных DSN (Data Source Names) и необходима для использования технологии ODBC в службах узла Web.

Имена системных источников данных были введены в стандарт ODBC версии 2.5 специально для поддержки технологии ODBC в службах Windows NT.

Чтобы установить драйверы ODBC

1. Если драйверы ODBC отсутствуют в системе, запустите программу установки щелчком значка Установка служб узла Web в группе программ Службы узла Web Microsoft. Вам потребуется установочный компакт-диск Windows NT Workstation или сетевой ресурс с содержимым этого компакт-диска.

2. Нажмите кнопку «OK».

3. Нажмите кнопку Добавить/удалить.

4. Нажмите кнопку «OK».

5. Установите флажок Драйверы ODBC и администрирование.

6. Нажмите кнопку «OK».

7. На экране появится диалоговое окно Установка драйверов.

8. Чтобы установить драйвер SQL Server, выделите драйвер SQL Server в списке Имеющиеся драйверы ODBC и нажмите кнопку «OK».

После этого программа установки копирует необходимые файлы.

Чтобы создать системные источники данных

1. Нажмите кнопку Пуск и выберите в меню Настройка команду Панель управления.

2. Дважды щелкните значок ODBC.

На экране появится диалоговое окно Источники данных.

Если драйверы ODBC устанавливались ранее, в окне будет присутствовать список существующих источников данных.

3. Нажмите кнопку Системные DSN.

Внимание! Нажатие кнопки Системные DSN является необходимым действием, поскольку приложение Internet Database Connector работает только с системными источниками данных.

На экране появится диалоговое окно Системные источники данных.

4. Нажмите кнопку «Добавить».

На экране появится диалоговое окно Добавление источника данных.

5. Выделите в списке необходимый драйвер ODBC и нажмите кнопку OK. На экране появится диалоговое окно, зависящее от выбранного драйвера.

6. Введите имя источника данных.

Имя источника данных является логическим именем, применяемым в технологии ODBC для обращения к драйверу и получения информации, необходимой для доступа к данным (например имени сервера или местоположения базы данных). Имя источника данных используется в файлах Internet Database Connector для указания службам узла Web расположения данных.

Для приложения Microsoft SQL Server в окне диалога установки следует указать имя сервера, сетевой адрес и сетевую библиотеку. Если вы не знаете, что следует задать в этих полях, оставьте значения, предлагаемые по умолчанию. Чтобы получить дополнительные сведения, нажмите кнопку Справка и откройте раздел с описанием сети.

7. Нажмите кнопку «OK».

На экране снова появится диалоговое окно Системные источники данных; список источников данных будет содержать новое имя.

8. Нажмите кнопку «Закрыть», чтобы закрыть окно диалога Системные источники данных.

9. Нажмите кнопку «Закрыть», чтобы закрыть окно диалога Источники данных.

10. Нажмите кнопку «OK», чтобы завершить установку ODBC и DSN.

32-разрядные драйверы ODBC

Приложение Internet Database Connector использует 32-разрядные драйверы ODBC. Дополнительные сведения о ODBC см. в справочных системах служб узла Web и приложения ODBC Windows NT.

Драйверы ODBC Microsoft Access

Приложение Internet Database Connector использует 32-разрядные драйверы ODBC, входящие в состав Microsoft® Office 95 и Microsoft® Access 95. Драйвер ODBC для Microsoft Access 2.0 не будет работать со службами узла Web.

Создание страниц Web и доступ в базы данных

Для организации доступа в базу данных SQL со страницы Web необходимо создать файл Internet Database Connector (формат IDC) и файл расширения HTML (формат HTX).

Пример запроса к базе данных

Этот пример начинается с простой страницы Web, содержащейся в файле Dbsamp.htm. Начальная страница имеет гиперссылки для запуска запросов, использующих драйвер ODBC для Microsoft SQL Server (результаты возвращаются на другой странице Web).

Следующий рисунок показывает содержимое экрана приложения Internet Explorer после загрузки файла Dbsamp1.htm (предполагается, что службы узла Web установлены на компьютере, называемом webserver).

По щелчку гиперссылки Для выполнения запроса выберите эту ссылку на сервер отправляется другой запрос URL. Адрес URL предшествует тексту гиперссылки (форматируется как скрытый текст):

<A HREF="http://webserver/scripts/samples/sample.idc?">Для выполнения запроса выберите эту ссылку</A>

В адресе URL запрашивается файл приложения Internet Database Connector (Sample.idc). Отображение расширений имен файлов препятствует непосредственному указанию файла Httpodbc.dll в адресе URL.

Процедура использования приложения Internet Database Connector состоит из шести шагов, как показано на следующей схеме.