Теперь, после рассмотрения отдельных компонентов IIS, попробуем с самого начала создать свой собственный веб-сайт. Мы начнем с сервера, на котором установлена операционная система WS03, и закончим полнофункциональным веб-сайтом. Создаваемый сайт будет простым сайтом ASP с базой данных Access, в которую пользователи будут вводить свои имена и другую информацию, чтобы отправлять ежемесячные новости пивоваренной компании. В данной лекции описываются несложные методы программирования, призванные внести ясность в то, каким образом все компоненты взаимодействуют друг с другом.
При создании сайта мы выполним следующие этапы (в зависимости от типа создаваемого сайта эти шаги могут варьироваться).
Первым шагом является выбор и получение доменного имени. В большинстве
случаев сначала нужно определить, свободно ли доменное имя, после чего
зарегистрировать его в режиме онлайн. Многие имена доменов уже заняты,
но, тем не менее, имеются и свободные имена (добавьте в имя
дополнительные символы или слова). Например, если имя beerbrewers.com
уже занято, выберите другое имя: beer-brewers.com, sudsbrewers.com или berbrewerz.com. Выберите другое расширение: beerbrewers.org или beerbrewers.biz. Некоторые регистраторы имен доменов налагают
ограничения на использование доменов верхнего уровня (
Остановимся на имени beer-brewers.com (предположим, что оно свободно).
После выбора имени домена его необходимо зарегистрировать. Каждая
компания-регистратор предусматривает свой процесс регистрации, поэтому
в данном случае также следует посетить ее сайт. В большинстве компаний
запрашивается следующая информация.
Регистраторы сохраняют только информацию о сервере DNS, на котором располагаются записи домена; они не хранят информацию о записях A в зонах, созданных клиентом в данном домене. Следовательно, нужно предоставить только имена первичного и вторичного серверов DNS, на которых расположены записи рассматриваемого домена. После настройки этих параметров рекомендуется реализовать хостинг записей сайта на раздельных серверах DNS. Нередко при использовании высокоскоростного подключения (не ниже T1) поставщик услуг интернета (ISP) выступает в роли вторичного сервера DNS для компании-регистратора.
Примечание. Как говорилось в лекции 8 курса "Администрирование web-серверов в IIS", зона "A" является
частью домена DNS. Термин "зона" обычно используется для
обозначения части домена по отношению к серверу DNS.
Следующим шагом является получение двух IP-адресов от поставщика услуг интернета (или выбор адресов из блока доступных). После этого адреса можно присвоить серверу: один IP-адрес – для тестового сайта, а другой – для функционирующего. Необходимы статические неизменные IP-адреса; их изменение сделает веб-сайт недоступным, до тех пор пока не будет обновлен DNS.
После получения статических IP-адресов они присваиваются серверу следующим образом.
Одному интерфейсу можно присвоить несколько IP-адресов. Запомните их, так как они потребуются в дальнейшем.
Примечание. У пользователя может возникнуть вопрос: "А как же заголовки узла? Ведь они позволяют иметь несколько веб-сайтов на сервере?". Это хороший вопрос. Обычно заголовки узлов используются, поскольку с их помощью реализуется экономия IP-адресов. К сожалению, протокол защищенных сокетов SSL и заголовки узлов несовместимы друг с другом. Информация заголовка шифруется при передаче через SSL, поэтому ее сложно расшифровывать. Поэтому в нашем примере используется IP-адрес.
После регистрации доменного имени необходимо создать зону и настроить записи DNS для сервера. Мы будем использовать сервер Microsoft DNS, входящий в комплект WS03. (Для получения инструкций по установке сервера DNS обратитесь к лекции 8 курса "Администрирование web-серверов в IIS".)
Для создания зоны прямого поиска выполните следующие шаги.
(рис 7.1) Рассматриваемая зона DNSТеперь давайте создадим записи DNS. Мы видим? что уже имеются записи Start of Authority (SOA) и Name Server (NS) (см. рис. 7.1). Следует
добавить две записи типа "А", чтобы пользователи
осуществляли доступ к сайтам http://www.beer-brewers.com и
http://test.beer-brewers.com.
beer-brewers.com в области слева
и выберите команду New Host (A) (Создать узел А).test.Мы создали в нашей зоне запись "А", позволяющую клиентам использовать www в имени хоста. Теперь при вводе пользователем вводить в адресной строке браузера адреса http://www.beer-brewers.com произойдет подключение к DNS-серверу, использующему IP-адрес, связанный с данным URL.
Данный процесс включает в себя:
Если сервер находится в среде интернета, важно обеспечить его безопасность. В лекции 6 подробно описан процесс разработки методологии безопасности. В нашем случае используется базовый контрольный перечень мероприятий по обеспечению безопасности.
По умолчанию IIS устанавливается в каталог C:\Inetpub. Вероятно,
потребуется отделить файлы операционной системы от файлов приложений,
установленных на рассматриваемом компьютере. Веб-сайта можно записать
на другое устройство (например, на D:) либо создать папку Web Site на
диске E: и записать в нее файлы веб-сайта. Так обеспечивается
безопасность с наследованием разрешений. Кроме того, обновление,
форматирование или повреждение устройства C: не влияет на данные,
хранящиеся на диске D: или E:.
При создании и форматировании нового устройства с использованием файловой системы NTFS ему присваиваются следующие разрешения.
| Учетная запись безопасности | Разрешения |
|---|---|
| Группа локального администрирования | Полный контроль. |
| SYSTEM | Полный контроль. |
| CREATOR OWNER (Создатель-владелец) | Полный контроль. |
| Users (Пользователи) | Чтение и выполнение, создание папок/присоединение данных, создание файлов/запись данных. |
| Everyone (Все) | Чтение и выполнение. |
Эти разрешения позволяют выполнять действия, выходящие за рамки того, что требуется для рассматриваемого сайта. Кроме того, Internet Guest Account (гостевая учетная запись интернета) не содержит легко контролируемых прав для данной папки, а только разрешения групп Everyone (Все) и Users (Пользователи). Не рекомендуется напрямую присваивать ресурсы определенной учетной записи, может потребоваться более высокий уровень контроля над тем, что доступно учетной записи анонимного пользователя. Выходом из данной ситуации является создание локальной группы, присвоение этой группе прав NTFS и включение в нее анонимного пользователя. Таким образом, для предоставления разрешения другой учетной записи пользователя ее нужно лишь добавить в эту группу.
Разрешения папки настраиваются следующим образом.
Anonymous Access for BeerBrewers Site. Это имя
подходит также и для описания (см. рис 7.3(рис 7.3) Группа Anonymous Access for BeerBrewers SiteIUSR_имя-компьютера. В нашем
примере учетной записи присваивается имя IUSR_MYCOMPUTER.После создания группы ее можно включить в разрешения безопасности папки, в которой располагается веб-сайт. Создаваемый сайт является совершенно новым, поэтому сначала необходимо создать папку.
E: с помощью Проводника
Windows (Windows Explorer) и назовите ее BeerBrewers Site.
(рис 7.4) Вкладка окна Site Properties (Свойства сайта)Мы создали папку, управление которой осуществляют группы Administrators (Администраторы) и Operating System (Операционная система), а чтение и выполнение – все остальные лица. Повторите шаги 1-7 для создания среды разработки для разрабатываемого веб-сайта BeerBrewers Test Site. Для разрешений используйте одну и ту же группу (на самом деле такой подход даже лучше).
Создадим на рассматриваемом сервере тестовый сайт. Необходимо иметь место для тестирования кода перед его окончательной реализацией. Тестовый сайт будет располагаться на том же сервере в только что созданном каталоге.
Повторите эти шаги для создания функционирующего веб-сайта.
При первой установке веб-сервера страницы ASP отключены согласно политике Microsoft "отключения по умолчанию". Из этого следует, что их нужно включить для рассматриваемого веб-сервера.
Все довольно просто. Теперь технология ASP включена для всех сайтов на данном сервере.
После создания сайтов настало время заняться настройкой пула приложения. С тестовым сайтом связано небольшое количество трафика, поэтому он может оставаться в своем собственном пуле. Для функционирующего сайта мы создадим пул приложения. На данный момент он не особо нужен, так как наш сайт представляет собой лишь форму ASP, однако по мере его роста и применения более сложных компонентов (например, библиотек DLL ActiveX) потребность в рециркуляции рабочих процессов возрастет. Это также отделит процесс нашего функционирующего сайта от всех других сайтов.
Для создания пула приложения для рассматриваемого сайта выполните следующие шаги.
На данный момент настройки по умолчанию данного пула приложения нас устраивают.
Теперь присвоим данный пул приложения сайту:
Данный код реализует простой веб-сайт со страницей по умолчанию и меню, расположенным вверху страницы и содержащим три ссылки: Home, About Us и ссылку на страницу регистрации. Страница регистрации содержит форму, предназначенную для заполнения, которая передает информацию в базу данных для обеспечения ежемесячной отправки новостей. Данный сайт состоит из шести файлов (см. рис. 7.5).
(рис 7.5) Перечень файлов в каталогеНиже приведен демонстрационный код каждого файла.
<HTML>
<HEAD>
<TITLE>
Beer Brewers Home Page
</TITLE>
</HEAD>
<frameset rows="60,*">
<frame name="banner" scrolling="no" noresize target="main" src="top.htm">
<frame name="main" src="about:blank">
</frameset>
<noframes>
<BODY>
<p>This page uses frames, but your browser doesn't support them.</p>
</BODY>
</noframes>
</HTML>
<HTML>
<HEAD>
<TITLE>
Beer Brewer's Home Page
</TITLE>
</HEAD>
<BODY>
Welcome to the Beer Brewer's site. Please sign up for the newsletter.
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>
Sign up for the newsletter!
</TITLE>
</HEAD>
<BODY>
This form will sign you up to receive the Beer-Brewers.com newsletter.
You can get the newsletter by email and postal mail.<br>
<form METHOD="POST" target="main" ACTION="https://www.beer-brewers.com/SignUpPost.asp">
<table BORDER="0">
<tr>
<td><b>First Name</b></td>
<td><input TYPE="TEXT" NAME="FirstName" SIZE="50">
</tr>
<tr>
<td><b>Last Name</b></td>
<td><input TYPE="TEXT" NAME="LastName" SIZE="50">
</tr>
<tr>
<td><b>Street Address</b></td>
<td><input TYPE="TEXT" NAME="Address" SIZE="50">
</tr>
<tr>
<td><b>City</b></td>
<td><input TYPE="TEXT" NAME="City" SIZE="50">
</tr>
<tr>
<td><b>State</b></td>
<td><input TYPE="TEXT" NAME="State" SIZE="50">
</tr>
<tr>
<td><b>Zip Code</b></td>
<td><input TYPE="TEXT" NAME="Zip" SIZE="50">
</tr>
<tr>
<td><b>Country</b></td>
<td><input TYPE="TEXT" NAME="Country" SIZE="50">
</tr>
<tr>
<td><b>Email Address</b></td>
<td><input TYPE="TEXT" NAME="Email" SIZE="50">
</tr>
</table>
<br>
<input TYPE="Submit" value="Submit">
</form>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>
Server
</TITLE>
</HEAD>
<BODY>
<%
' Set up and open the database using the DSN
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
conn.open "DSN=BeerBrewersDSN;"
rs.open "BeerBrewersTable", conn, 2, 3
' Add a new record using all the fields in the form
rs.addnew
rs("FirstName") = request("FirstName")
rs("LastName") = request("LastName")
rs("Address") = request("Address")
rs("City") = request("City")
rs("State") = request("State")
rs("Zip") = request("Zip")
rs("Country") = request("Country")
rs("Email") = request("Email")
' Update the records and close the connection
rs.update
rs.close
conn.close
' Always close out the objects to eliminate memory leaks
SET conn = Nothing
SET rs = Nothing
%>
Your information has been updated. You will receive the newsletter in 4-6 weeks
Thanks!
</BODY>
</HTML>
<html>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" height=60 border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="middle" align="center">
</td>
<td valign="middle" align="center">
<p align="center"><a target="main" href="homepage.htm">Home</a></p>
</td>
<td valign="middle" align="center">
<p align="center"><a target="main" href="https://www.beer-brewers.com/signup.htm">Sign up for the newsletter</a></p>
</td>
<td valign="middle" align="center">
<p align="center"><a target="main" href="https://www.beer-brewers.com/NewsLetter.htm">Current Newsletter</a></p>
</td>
<td valign="middle" align="center">
<p align="center"><a target="main" href="UnderConstruction.htm">About Us</a></p>
</td>
</tr>
</table>
</body>
</html>
<HTML>
<HEAD>
<TITLE>
Under Construction
</TITLE>
</HEAD>
<BODY>
This page is under construction. Please come back later.
</BODY>
</HTML>
Данный код применяется к функционирующему сайту. Данные для
функционирующего и тестового сайтов одинаковы, за исключением имени
таблиц базы данных и URL тестового сайта. Один набор этих файлов
располагается в каталоге функционирующего сайта, а другой – в каталоге
тестирования. Страница представляет собой лишь новостное
письмо, и с ней не связан какой-либо код, поэтому здесь она не
приводится.
База данных будет содержать всю информацию, используемую для отправки новостных писем. Нам понадобится идентифицировать все поля базы данных, чтобы сконструировать ее. Ниже приведен список полей базы данных.
| Информация | Имя поля | Тип поля | Длина поля |
|---|---|---|---|
| Имя | FirstName | Text | 255 |
| Фамилия | LastName | Text | 255 |
| Адрес | Address | Text | 255 |
| Город | City | Text | 255 |
| Регион | State | Text | 255 |
| Почтовый код | Zip | Text | 255 |
| Страна | Text | 255 | |
| Адрес электронной почты | Text | 255 |
Следующим шагом будет создание базы данных. База данных должна иметь разрешение на запись для анонимного пользователя, поэтому нужно добавить соответствующее разрешение в список разрешений NTFS. По этой причине рекомендуется располагать базу данных в другом каталоге, чем папка с веб-сайтом. Если сайт и база данных находятся в одном каталоге, поэтому легко изменить разрешения таким образом, что никто не сможет осуществить запись в базу данных, или, что еще хуже, открыть разрешения для всего каталога. При открытии файла в программе Microsoft Access создается файл .LDB, являющийся файлом блокировки. Если анонимный пользователь не сможет создавать и уничтожать файлы в каталоге с базой данных, то возникнут определенные проблемы.
Давайте создадим каталог на диске E: и присвоим ему имя Databases. Убедитесь, что группа доступа Anonymous
(Анонимные пользователи) имеет права на изменение данного каталога.
Для создания базы данных используйте либо графический интерфейс
пользователя в Microsoft Access, либо выражение SQL. Присвоим базе
данных имя BeerBrewersDB.mdb, а таблицу назовем BeerBrewersTable.
Графический интерфейс пользователя достаточно информативен; ниже
приводится выражение SQL, использующееся для создания таблицы:
create table BeerBrewersTable ( FirstName varchar(255), LastName varchar(255), Address varchar(255), City varchar(255), State varchar(255), Zip varchar(255), Country varchar(255), Email varchar(255) )
После создания базы данных создадим для нее
*.mdb ) (Драйвер Microsoft
Access).E:\Databases\BeerBrewersDB.mdb ).Выполните те же шаги для тестовой базы данных, предназначенной для
тестового веб-сайта. При желании можно создать в базе данных BeerBrewersDB.mdb еще одну таблицу. Таким образом, исчезнет
необходимость в создании каталога или нового
Совет. Если для создания таблицы используется Microsoft Access, то
убедитесь в том, что все поля установлены равными значению Allow Zero
Length = Yes (Разрешить нулевую длину = Да). Значением по умолчанию
является No (Нет), но в этом случае возникнет ошибка, если не все поля
будут заполнены.
Так как рассматриваемый сайт осуществляет сбор имен, адресов и другой личной информации, следует применить шифрование интернет-трафика. Кроме того, подлинность сайта в интернете будет доказываться сертификатом, за счет чего пользователи будут относиться к сайту с большим доверием. Для тестового сайта подойдет "доморощенный" сертификат. Для основного функционирующего сайта потребуется коммерческий сертификат.
Как говорилось в лекции 10 курса "Администрирование web-серверов в IIS", свое собственное бюро сертификатов (CA) рекомендуется сделать автономным корневым бюро сертификатов, после чего делегировать сертификат подчиненному CA. Затем можно использовать подчиненное бюро сертификатов для выпуска сертификатов без опасности проникновения злоумышленника во всю систему сертификации. Так как рассматриваемый сертификат предназначается для тестового сайта, который не будет отображаться конечным пользователям, нам проще создать CA и выпустить с его помощью сертификат. По-прежнему рекомендуется выпускать сертификат с другого компьютера. Кроме всего прочего, мы используем тестовый сертификат лишь для того, чтобы убедиться в корректной настройке кода SSL.
Получение и установка тестового сертификата состоит из трех шагов.
Запрос на сертификат осуществляется следующим образом.
После создания запроса на сертификат можно выпустить сам сертификат.
Pending Requests .
Далее необходимо выпустить сертификат. Выделите запрос в папке Pending
Requests, после чего выберите команду Action\All Tasks\Issue
(Действие\Все задачи\Выпустить).Issued Certificates
(папка изданных сертификатов). Теперь сертификат можно экспортировать
для отправки на веб-сервер. Выделите сертификат в папке Issued
Certificates и выполните команду Action\All Tasks\Export .cer .Теперь можно вернуться в IIS и обработать запрос для использования.
Теперь у нас есть полностью установленный сертификат тестового сайта, и его можно использовать при тестировании кода. По окончании работы не забудьте удалить как файл запроса, так и экспортированный файл сертификата. Заполучив эти файлы, кто-то сможет осуществить несанкционированный доступ к сертификату.
Для функционирующего сайта, необходимо получить коммерческий сертификат, особенно, если сайт взаимодействует с большим количеством пользователей. В интрасети можно получить сертификат из собственного бюро сертификатов, так как это бюро можно установить в браузерах всех клиентов. Но это нельзя реализовать в интернете. Вы сможете получить сертификат в своем собственном бюро сертификатов, но оно будет генерировать сообщение с предупреждением всех клиентов при их доступе к любым сайтам через SSL, что отобьет их желание посещать такой сайт. Выпуск собственного сертификата с помощью своего CA является рискованной операцией, особенно, если корневые CA были когда-то доступны посторонним. По этим причинам для публично доступных сайтов рекомендуется использовать коммерческое бюро сертификатов.
Процесс получения сертификата функционирующего сайта аналогичен случаю с тестовым сайтом, за исключением того, что коммерческий сертификат запрашивается у коммерческого CA, и отправляется файл запроса.
Каждое коммерческое бюро сертификатов имеет свой процесс получения сертификата. Важно помнить, что информация запроса на сертификат должна соответствовать информации, используемой в запрашивающей организации. Для больших компаний большое значение имеет номер D-U-N-S. В нашем случае не идет речь о корпорации, поэтому идентификация рассматриваемой компании осуществляется отправкой письма от президента клуба на официальном бланке компании. В остальном же для установки сертификата необходимо выполнить такие же шаги, как и для тестового сайта.
Примечание. Обратитесь к лекции 10 курса "Администрирование web-серверов в IIS" для получения дополнительной информации, связанной с сертификатами.
Страница с новостями рассматриваемого сервера будет защищена паролем. Это означает, что каждый пользователь, осуществляющий доступ к странице, должен будет предоставить имя пользователя и пароль для доступа к сайту. Для этого необходимо выполнить следующие шаги.
При регистрации пользователя создайте для него учетную запись на веб-сервере, а затем сообщите ему по электронной почте имя пользователя и пароль. Для простоты управления разрешениями NTFS можно создать группу.
После создания группы ей нужно присвоить права файловой системы. До
этого мы присвоили права анонимной группе; теперь настало время
добавить в список группу сайта BeerBrewers. Группу следует связывать
только с тем файлом (файлами), который должен быть защищен. В данном
случае речь идет о файле .
newsletter .htm.После установки разрешений NTFS следует настроить в IIS параметры безопасности. Эти разрешения необходимо установить как для тестового, так и для функционирующего сайта (выполнить процедуру дважды).
newsletter .htm.Стоп!
Читатель: Минуточку, разве базовая аутентификация рекомендуется к использованию, ведь в процессе ее работы пароль передается открытым текстом?
Автор: Как правило, да. Но у нас есть сертификат! Весь трафик, связанный с данной страницей, будет зашифрованным.
Читатель: Хорошо, у нас есть сертификат, но как заставить всех его использовать?
Автор: Об этом рассказывается ниже.
Принудительное использование SSL для обхода передачи паролей в открытом виде через интернет реализуется следующим образом.
Теперь рассматриваемый файл защищен паролем, причем пароль также защищен.
Протестируем наш код перед включением его в работу. Сначала создайте детальный план, проверочный перечень действий, который будет выглядеть примерно так.
Примечание. Для нашего веб-сайта не предусмотрена проверка ошибок для полей, поэтому в них можно вводить некорректные данные. В реальной же ситуации рекомендуется реализовывать проверку полей формы.
После всестороннего тестирования кода и его проверки согласно плану тестирования, самое время запустить код в работу. Важно протестировать в среде тестирования все возможные изменения, которые могут произойти в будущем, перед переводом кода в состояние функционирования. Таким образом, мы получили полнофункциональный веб-сайт!
Примечание. Вся информация в данной лекции является вымышленной и приводится только в демонстрационных целях. Всякая аналогия с каким-либо другим сайтом, реальным или воображаемым, является чистой случайностью.
Теперь, после рассмотрения отдельных компонентов IIS, попробуем с самого начала создать свой собственный веб-сайт. Мы начнем с сервера, на котором установлена операционная система WS03, и закончим полнофункциональным веб-сайтом. Создаваемый сайт будет простым сайтом ASP с базой данных Access, в которую пользователи будут вводить свои имена и другую информацию, чтобы отправлять ежемесячные новости пивоваренной компании. В данной лекции описываются несложные методы программирования, призванные внести ясность в то, каким образом все компоненты взаимодействуют друг с другом.
При создании сайта мы выполним следующие этапы (в зависимости от типа создаваемого сайта эти шаги могут варьироваться).
Первым шагом является выбор и получение доменного имени. В большинстве
случаев сначала нужно определить, свободно ли доменное имя, после чего
зарегистрировать его в режиме онлайн. Многие имена доменов уже заняты,
но, тем не менее, имеются и свободные имена (добавьте в имя
дополнительные символы или слова). Например, если имя beerbrewers.com
уже занято, выберите другое имя: beer-brewers.com, sudsbrewers.com или berbrewerz.com. Выберите другое расширение: beerbrewers.org или beerbrewers.biz. Некоторые регистраторы имен доменов налагают
ограничения на использование доменов верхнего уровня (
Остановимся на имени beer-brewers.com (предположим, что оно свободно).
После выбора имени домена его необходимо зарегистрировать. Каждая
компания-регистратор предусматривает свой процесс регистрации, поэтому
в данном случае также следует посетить ее сайт. В большинстве компаний
запрашивается следующая информация.
Регистраторы сохраняют только информацию о сервере DNS, на котором располагаются записи домена; они не хранят информацию о записях A в зонах, созданных клиентом в данном домене. Следовательно, нужно предоставить только имена первичного и вторичного серверов DNS, на которых расположены записи рассматриваемого домена. После настройки этих параметров рекомендуется реализовать хостинг записей сайта на раздельных серверах DNS. Нередко при использовании высокоскоростного подключения (не ниже T1) поставщик услуг интернета (ISP) выступает в роли вторичного сервера DNS для компании-регистратора.
Примечание. Как говорилось в лекции 8 курса "Администрирование web-серверов в IIS", зона "A" является
частью домена DNS. Термин "зона" обычно используется для
обозначения части домена по отношению к серверу DNS.
Следующим шагом является получение двух IP-адресов от поставщика услуг интернета (или выбор адресов из блока доступных). После этого адреса можно присвоить серверу: один IP-адрес – для тестового сайта, а другой – для функционирующего. Необходимы статические неизменные IP-адреса; их изменение сделает веб-сайт недоступным, до тех пор пока не будет обновлен DNS.
После получения статических IP-адресов они присваиваются серверу следующим образом.
Одному интерфейсу можно присвоить несколько IP-адресов. Запомните их, так как они потребуются в дальнейшем.
Примечание. У пользователя может возникнуть вопрос: "А как же заголовки узла? Ведь они позволяют иметь несколько веб-сайтов на сервере?". Это хороший вопрос. Обычно заголовки узлов используются, поскольку с их помощью реализуется экономия IP-адресов. К сожалению, протокол защищенных сокетов SSL и заголовки узлов несовместимы друг с другом. Информация заголовка шифруется при передаче через SSL, поэтому ее сложно расшифровывать. Поэтому в нашем примере используется IP-адрес.
После регистрации доменного имени необходимо создать зону и настроить записи DNS для сервера. Мы будем использовать сервер Microsoft DNS, входящий в комплект WS03. (Для получения инструкций по установке сервера DNS обратитесь к лекции 8 курса "Администрирование web-серверов в IIS".)
Для создания зоны прямого поиска выполните следующие шаги.
(рис 7.1) Рассматриваемая зона DNSТеперь давайте создадим записи DNS. Мы видим? что уже имеются записи Start of Authority (SOA) и Name Server (NS) (см. рис. 7.1). Следует
добавить две записи типа "А", чтобы пользователи
осуществляли доступ к сайтам http://www.beer-brewers.com и
http://test.beer-brewers.com.
beer-brewers.com в области слева
и выберите команду New Host (A) (Создать узел А).test.Мы создали в нашей зоне запись "А", позволяющую клиентам использовать www в имени хоста. Теперь при вводе пользователем вводить в адресной строке браузера адреса http://www.beer-brewers.com произойдет подключение к DNS-серверу, использующему IP-адрес, связанный с данным URL.
Данный процесс включает в себя:
Если сервер находится в среде интернета, важно обеспечить его безопасность. В лекции 6 подробно описан процесс разработки методологии безопасности. В нашем случае используется базовый контрольный перечень мероприятий по обеспечению безопасности.
По умолчанию IIS устанавливается в каталог C:\Inetpub. Вероятно,
потребуется отделить файлы операционной системы от файлов приложений,
установленных на рассматриваемом компьютере. Веб-сайта можно записать
на другое устройство (например, на D:) либо создать папку Web Site на
диске E: и записать в нее файлы веб-сайта. Так обеспечивается
безопасность с наследованием разрешений. Кроме того, обновление,
форматирование или повреждение устройства C: не влияет на данные,
хранящиеся на диске D: или E:.
При создании и форматировании нового устройства с использованием файловой системы NTFS ему присваиваются следующие разрешения.
| Учетная запись безопасности | Разрешения |
|---|---|
| Группа локального администрирования | Полный контроль. |
| SYSTEM | Полный контроль. |
| CREATOR OWNER (Создатель-владелец) | Полный контроль. |
| Users (Пользователи) | Чтение и выполнение, создание папок/присоединение данных, создание файлов/запись данных. |
| Everyone (Все) | Чтение и выполнение. |
Эти разрешения позволяют выполнять действия, выходящие за рамки того, что требуется для рассматриваемого сайта. Кроме того, Internet Guest Account (гостевая учетная запись интернета) не содержит легко контролируемых прав для данной папки, а только разрешения групп Everyone (Все) и Users (Пользователи). Не рекомендуется напрямую присваивать ресурсы определенной учетной записи, может потребоваться более высокий уровень контроля над тем, что доступно учетной записи анонимного пользователя. Выходом из данной ситуации является создание локальной группы, присвоение этой группе прав NTFS и включение в нее анонимного пользователя. Таким образом, для предоставления разрешения другой учетной записи пользователя ее нужно лишь добавить в эту группу.
Разрешения папки настраиваются следующим образом.
Anonymous Access for BeerBrewers Site. Это имя
подходит также и для описания (см. рис 7.3(рис 7.3) Группа Anonymous Access for BeerBrewers SiteIUSR_имя-компьютера. В нашем
примере учетной записи присваивается имя IUSR_MYCOMPUTER.После создания группы ее можно включить в разрешения безопасности папки, в которой располагается веб-сайт. Создаваемый сайт является совершенно новым, поэтому сначала необходимо создать папку.
E: с помощью Проводника
Windows (Windows Explorer) и назовите ее BeerBrewers Site.
(рис 7.4) Вкладка окна Site Properties (Свойства сайта)Мы создали папку, управление которой осуществляют группы Administrators (Администраторы) и Operating System (Операционная система), а чтение и выполнение – все остальные лица. Повторите шаги 1-7 для создания среды разработки для разрабатываемого веб-сайта BeerBrewers Test Site. Для разрешений используйте одну и ту же группу (на самом деле такой подход даже лучше).
Создадим на рассматриваемом сервере тестовый сайт. Необходимо иметь место для тестирования кода перед его окончательной реализацией. Тестовый сайт будет располагаться на том же сервере в только что созданном каталоге.
Повторите эти шаги для создания функционирующего веб-сайта.
При первой установке веб-сервера страницы ASP отключены согласно политике Microsoft "отключения по умолчанию". Из этого следует, что их нужно включить для рассматриваемого веб-сервера.
Все довольно просто. Теперь технология ASP включена для всех сайтов на данном сервере.
После создания сайтов настало время заняться настройкой пула приложения. С тестовым сайтом связано небольшое количество трафика, поэтому он может оставаться в своем собственном пуле. Для функционирующего сайта мы создадим пул приложения. На данный момент он не особо нужен, так как наш сайт представляет собой лишь форму ASP, однако по мере его роста и применения более сложных компонентов (например, библиотек DLL ActiveX) потребность в рециркуляции рабочих процессов возрастет. Это также отделит процесс нашего функционирующего сайта от всех других сайтов.
Для создания пула приложения для рассматриваемого сайта выполните следующие шаги.
На данный момент настройки по умолчанию данного пула приложения нас устраивают.
Теперь присвоим данный пул приложения сайту:
Данный код реализует простой веб-сайт со страницей по умолчанию и меню, расположенным вверху страницы и содержащим три ссылки: Home, About Us и ссылку на страницу регистрации. Страница регистрации содержит форму, предназначенную для заполнения, которая передает информацию в базу данных для обеспечения ежемесячной отправки новостей. Данный сайт состоит из шести файлов (см. рис. 7.5).
(рис 7.5) Перечень файлов в каталогеНиже приведен демонстрационный код каждого файла.
<HTML>
<HEAD>
<TITLE>
Beer Brewers Home Page
</TITLE>
</HEAD>
<frameset rows="60,*">
<frame name="banner" scrolling="no" noresize target="main" src="top.htm">
<frame name="main" src="about:blank">
</frameset>
<noframes>
<BODY>
<p>This page uses frames, but your browser doesn't support them.</p>
</BODY>
</noframes>
</HTML>
<HTML>
<HEAD>
<TITLE>
Beer Brewer's Home Page
</TITLE>
</HEAD>
<BODY>
Welcome to the Beer Brewer's site. Please sign up for the newsletter.
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>
Sign up for the newsletter!
</TITLE>
</HEAD>
<BODY>
This form will sign you up to receive the Beer-Brewers.com newsletter.
You can get the newsletter by email and postal mail.<br>
<form METHOD="POST" target="main" ACTION="https://www.beer-brewers.com/SignUpPost.asp">
<table BORDER="0">
<tr>
<td><b>First Name</b></td>
<td><input TYPE="TEXT" NAME="FirstName" SIZE="50">
</tr>
<tr>
<td><b>Last Name</b></td>
<td><input TYPE="TEXT" NAME="LastName" SIZE="50">
</tr>
<tr>
<td><b>Street Address</b></td>
<td><input TYPE="TEXT" NAME="Address" SIZE="50">
</tr>
<tr>
<td><b>City</b></td>
<td><input TYPE="TEXT" NAME="City" SIZE="50">
</tr>
<tr>
<td><b>State</b></td>
<td><input TYPE="TEXT" NAME="State" SIZE="50">
</tr>
<tr>
<td><b>Zip Code</b></td>
<td><input TYPE="TEXT" NAME="Zip" SIZE="50">
</tr>
<tr>
<td><b>Country</b></td>
<td><input TYPE="TEXT" NAME="Country" SIZE="50">
</tr>
<tr>
<td><b>Email Address</b></td>
<td><input TYPE="TEXT" NAME="Email" SIZE="50">
</tr>
</table>
<br>
<input TYPE="Submit" value="Submit">
</form>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>
Server
</TITLE>
</HEAD>
<BODY>
<%
' Set up and open the database using the DSN
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
conn.open "DSN=BeerBrewersDSN;"
rs.open "BeerBrewersTable", conn, 2, 3
' Add a new record using all the fields in the form
rs.addnew
rs("FirstName") = request("FirstName")
rs("LastName") = request("LastName")
rs("Address") = request("Address")
rs("City") = request("City")
rs("State") = request("State")
rs("Zip") = request("Zip")
rs("Country") = request("Country")
rs("Email") = request("Email")
' Update the records and close the connection
rs.update
rs.close
conn.close
' Always close out the objects to eliminate memory leaks
SET conn = Nothing
SET rs = Nothing
%>
Your information has been updated. You will receive the newsletter in 4-6 weeks
Thanks!
</BODY>
</HTML>
<html>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" height=60 border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="middle" align="center">
</td>
<td valign="middle" align="center">
<p align="center"><a target="main" href="homepage.htm">Home</a></p>
</td>
<td valign="middle" align="center">
<p align="center"><a target="main" href="https://www.beer-brewers.com/signup.htm">Sign up for the newsletter</a></p>
</td>
<td valign="middle" align="center">
<p align="center"><a target="main" href="https://www.beer-brewers.com/NewsLetter.htm">Current Newsletter</a></p>
</td>
<td valign="middle" align="center">
<p align="center"><a target="main" href="UnderConstruction.htm">About Us</a></p>
</td>
</tr>
</table>
</body>
</html>
<HTML>
<HEAD>
<TITLE>
Under Construction
</TITLE>
</HEAD>
<BODY>
This page is under construction. Please come back later.
</BODY>
</HTML>
Данный код применяется к функционирующему сайту. Данные для
функционирующего и тестового сайтов одинаковы, за исключением имени
таблиц базы данных и URL тестового сайта. Один набор этих файлов
располагается в каталоге функционирующего сайта, а другой – в каталоге
тестирования. Страница представляет собой лишь новостное
письмо, и с ней не связан какой-либо код, поэтому здесь она не
приводится.
База данных будет содержать всю информацию, используемую для отправки новостных писем. Нам понадобится идентифицировать все поля базы данных, чтобы сконструировать ее. Ниже приведен список полей базы данных.
| Информация | Имя поля | Тип поля | Длина поля |
|---|---|---|---|
| Имя | FirstName | Text | 255 |
| Фамилия | LastName | Text | 255 |
| Адрес | Address | Text | 255 |
| Город | City | Text | 255 |
| Регион | State | Text | 255 |
| Почтовый код | Zip | Text | 255 |
| Страна | Text | 255 | |
| Адрес электронной почты | Text | 255 |
Следующим шагом будет создание базы данных. База данных должна иметь разрешение на запись для анонимного пользователя, поэтому нужно добавить соответствующее разрешение в список разрешений NTFS. По этой причине рекомендуется располагать базу данных в другом каталоге, чем папка с веб-сайтом. Если сайт и база данных находятся в одном каталоге, поэтому легко изменить разрешения таким образом, что никто не сможет осуществить запись в базу данных, или, что еще хуже, открыть разрешения для всего каталога. При открытии файла в программе Microsoft Access создается файл .LDB, являющийся файлом блокировки. Если анонимный пользователь не сможет создавать и уничтожать файлы в каталоге с базой данных, то возникнут определенные проблемы.
Давайте создадим каталог на диске E: и присвоим ему имя Databases. Убедитесь, что группа доступа Anonymous
(Анонимные пользователи) имеет права на изменение данного каталога.
Для создания базы данных используйте либо графический интерфейс
пользователя в Microsoft Access, либо выражение SQL. Присвоим базе
данных имя BeerBrewersDB.mdb, а таблицу назовем BeerBrewersTable.
Графический интерфейс пользователя достаточно информативен; ниже
приводится выражение SQL, использующееся для создания таблицы:
create table BeerBrewersTable ( FirstName varchar(255), LastName varchar(255), Address varchar(255), City varchar(255), State varchar(255), Zip varchar(255), Country varchar(255), Email varchar(255) )
После создания базы данных создадим для нее
*.mdb ) (Драйвер Microsoft
Access).E:\Databases\BeerBrewersDB.mdb ).Выполните те же шаги для тестовой базы данных, предназначенной для
тестового веб-сайта. При желании можно создать в базе данных BeerBrewersDB.mdb еще одну таблицу. Таким образом, исчезнет
необходимость в создании каталога или нового
Совет. Если для создания таблицы используется Microsoft Access, то
убедитесь в том, что все поля установлены равными значению Allow Zero
Length = Yes (Разрешить нулевую длину = Да). Значением по умолчанию
является No (Нет), но в этом случае возникнет ошибка, если не все поля
будут заполнены.
Так как рассматриваемый сайт осуществляет сбор имен, адресов и другой личной информации, следует применить шифрование интернет-трафика. Кроме того, подлинность сайта в интернете будет доказываться сертификатом, за счет чего пользователи будут относиться к сайту с большим доверием. Для тестового сайта подойдет "доморощенный" сертификат. Для основного функционирующего сайта потребуется коммерческий сертификат.
Как говорилось в лекции 10 курса "Администрирование web-серверов в IIS", свое собственное бюро сертификатов (CA) рекомендуется сделать автономным корневым бюро сертификатов, после чего делегировать сертификат подчиненному CA. Затем можно использовать подчиненное бюро сертификатов для выпуска сертификатов без опасности проникновения злоумышленника во всю систему сертификации. Так как рассматриваемый сертификат предназначается для тестового сайта, который не будет отображаться конечным пользователям, нам проще создать CA и выпустить с его помощью сертификат. По-прежнему рекомендуется выпускать сертификат с другого компьютера. Кроме всего прочего, мы используем тестовый сертификат лишь для того, чтобы убедиться в корректной настройке кода SSL.
Получение и установка тестового сертификата состоит из трех шагов.
Запрос на сертификат осуществляется следующим образом.
После создания запроса на сертификат можно выпустить сам сертификат.
Pending Requests .
Далее необходимо выпустить сертификат. Выделите запрос в папке Pending
Requests, после чего выберите команду Action\All Tasks\Issue
(Действие\Все задачи\Выпустить).Issued Certificates
(папка изданных сертификатов). Теперь сертификат можно экспортировать
для отправки на веб-сервер. Выделите сертификат в папке Issued
Certificates и выполните команду Action\All Tasks\Export .cer .Теперь можно вернуться в IIS и обработать запрос для использования.
Теперь у нас есть полностью установленный сертификат тестового сайта, и его можно использовать при тестировании кода. По окончании работы не забудьте удалить как файл запроса, так и экспортированный файл сертификата. Заполучив эти файлы, кто-то сможет осуществить несанкционированный доступ к сертификату.
Для функционирующего сайта, необходимо получить коммерческий сертификат, особенно, если сайт взаимодействует с большим количеством пользователей. В интрасети можно получить сертификат из собственного бюро сертификатов, так как это бюро можно установить в браузерах всех клиентов. Но это нельзя реализовать в интернете. Вы сможете получить сертификат в своем собственном бюро сертификатов, но оно будет генерировать сообщение с предупреждением всех клиентов при их доступе к любым сайтам через SSL, что отобьет их желание посещать такой сайт. Выпуск собственного сертификата с помощью своего CA является рискованной операцией, особенно, если корневые CA были когда-то доступны посторонним. По этим причинам для публично доступных сайтов рекомендуется использовать коммерческое бюро сертификатов.
Процесс получения сертификата функционирующего сайта аналогичен случаю с тестовым сайтом, за исключением того, что коммерческий сертификат запрашивается у коммерческого CA, и отправляется файл запроса.
Каждое коммерческое бюро сертификатов имеет свой процесс получения сертификата. Важно помнить, что информация запроса на сертификат должна соответствовать информации, используемой в запрашивающей организации. Для больших компаний большое значение имеет номер D-U-N-S. В нашем случае не идет речь о корпорации, поэтому идентификация рассматриваемой компании осуществляется отправкой письма от президента клуба на официальном бланке компании. В остальном же для установки сертификата необходимо выполнить такие же шаги, как и для тестового сайта.
Примечание. Обратитесь к лекции 10 курса "Администрирование web-серверов в IIS" для получения дополнительной информации, связанной с сертификатами.
Страница с новостями рассматриваемого сервера будет защищена паролем. Это означает, что каждый пользователь, осуществляющий доступ к странице, должен будет предоставить имя пользователя и пароль для доступа к сайту. Для этого необходимо выполнить следующие шаги.
При регистрации пользователя создайте для него учетную запись на веб-сервере, а затем сообщите ему по электронной почте имя пользователя и пароль. Для простоты управления разрешениями NTFS можно создать группу.
После создания группы ей нужно присвоить права файловой системы. До
этого мы присвоили права анонимной группе; теперь настало время
добавить в список группу сайта BeerBrewers. Группу следует связывать
только с тем файлом (файлами), который должен быть защищен. В данном
случае речь идет о файле .
newsletter .htm.После установки разрешений NTFS следует настроить в IIS параметры безопасности. Эти разрешения необходимо установить как для тестового, так и для функционирующего сайта (выполнить процедуру дважды).
newsletter .htm.Стоп!
Читатель: Минуточку, разве базовая аутентификация рекомендуется к использованию, ведь в процессе ее работы пароль передается открытым текстом?
Автор: Как правило, да. Но у нас есть сертификат! Весь трафик, связанный с данной страницей, будет зашифрованным.
Читатель: Хорошо, у нас есть сертификат, но как заставить всех его использовать?
Автор: Об этом рассказывается ниже.
Принудительное использование SSL для обхода передачи паролей в открытом виде через интернет реализуется следующим образом.
Теперь рассматриваемый файл защищен паролем, причем пароль также защищен.
Протестируем наш код перед включением его в работу. Сначала создайте детальный план, проверочный перечень действий, который будет выглядеть примерно так.
Примечание. Для нашего веб-сайта не предусмотрена проверка ошибок для полей, поэтому в них можно вводить некорректные данные. В реальной же ситуации рекомендуется реализовывать проверку полей формы.
После всестороннего тестирования кода и его проверки согласно плану тестирования, самое время запустить код в работу. Важно протестировать в среде тестирования все возможные изменения, которые могут произойти в будущем, перед переводом кода в состояние функционирования. Таким образом, мы получили полнофункциональный веб-сайт!
Примечание. Вся информация в данной лекции является вымышленной и приводится только в демонстрационных целях. Всякая аналогия с каким-либо другим сайтом, реальным или воображаемым, является чистой случайностью.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.