Программирование в IIS

Создание веб-сайта при помощи IIS

Разбить на страницы
Показывать лекцию целиком

Теперь, после рассмотрения отдельных компонентов IIS, попробуем с самого начала создать свой собственный веб-сайт. Мы начнем с сервера, на котором установлена операционная система WS03, и закончим полнофункциональным веб-сайтом. Создаваемый сайт будет простым сайтом ASP с базой данных Access, в которую пользователи будут вводить свои имена и другую информацию, чтобы отправлять ежемесячные новости пивоваренной компании. В данной лекции описываются несложные методы программирования, призванные внести ясность в то, каким образом все компоненты взаимодействуют друг с другом.

При создании сайта мы выполним следующие этапы (в зависимости от типа создаваемого сайта эти шаги могут варьироваться).

  • Получение доменного имени.
  • Получение IP-адреса.
  • Настройка адресов DNS (системы имен доменов).
  • Подготовка сервера.
  • Добавление веб-сайтов в IIS.
  • Включение ASP.
  • Настройка пула приложения.
  • Написание кода.
  • Создание базы данных.
  • Получение сертификата для тестового сайта.
  • Получение сертификата для функционирующего сайта.
  • Настройка безопасности веб-сайта.
  • Тестирование кода.
  • Перенос сайта в среду функционирования.
  • Получение доменного имени

    Первым шагом является выбор и получение доменного имени. В большинстве случаев сначала нужно определить, свободно ли доменное имя, после чего зарегистрировать его в режиме онлайн. Многие имена доменов уже заняты, но, тем не менее, имеются и свободные имена (добавьте в имя дополнительные символы или слова). Например, если имя beerbrewers.com уже занято, выберите другое имя: beer-brewers.com, sudsbrewers.com или berbrewerz.com. Выберите другое расширение: beerbrewers.org или beerbrewers.biz. Некоторые регистраторы имен доменов налагают ограничения на использование доменов верхнего уровня (TLD); чтобы выяснить это, посетите веб-сайт компании-регистратора.

    Остановимся на имени beer-brewers.com (предположим, что оно свободно). После выбора имени домена его необходимо зарегистрировать. Каждая компания-регистратор предусматривает свой процесс регистрации, поэтому в данном случае также следует посетить ее сайт. В большинстве компаний запрашивается следующая информация.

  • Имя.
  • Адрес.
  • Телефон/факс.
  • Техническая контактная информация.
  • Административная контактная информация.
  • Имя пользователя и пароль регистрируемого сайта.
  • Имя и IP-адрес сервера службы DNS, на котором располагаются записи.
  • Информация об оплате.
  • Регистраторы сохраняют только информацию о сервере DNS, на котором располагаются записи домена; они не хранят информацию о записях A в зонах, созданных клиентом в данном домене. Следовательно, нужно предоставить только имена первичного и вторичного серверов DNS, на которых расположены записи рассматриваемого домена. После настройки этих параметров рекомендуется реализовать хостинг записей сайта на раздельных серверах DNS. Нередко при использовании высокоскоростного подключения (не ниже T1) поставщик услуг интернета (ISP) выступает в роли вторичного сервера DNS для компании-регистратора.

    Примечание. Как говорилось в лекции 8 курса "Администрирование web-серверов в IIS", зона "A" является частью домена DNS. Термин "зона" обычно используется для обозначения части домена по отношению к серверу DNS. Поддоменом называется часть домена, входящая в состав зоны. Если в домене существует только одна зона, то используется любой из этих терминов. Запись "А" представляет собой запись DNS Address. Этот тип записи идентифицирует запись несущего ресурса и связывает доменное имя DNS с 32-битным адресом IPv4.

    Получение IP-адреса

    Следующим шагом является получение двух IP-адресов от поставщика услуг интернета (или выбор адресов из блока доступных). После этого адреса можно присвоить серверу: один IP-адрес – для тестового сайта, а другой – для функционирующего. Необходимы статические неизменные IP-адреса; их изменение сделает веб-сайт недоступным, до тех пор пока не будет обновлен DNS.

    После получения статических IP-адресов они присваиваются серверу следующим образом.

  • В Control Panel (Панель управления) откройте Network Connections (Сетевые подключения).
  • Дважды щелкните на соединении, которое будет использовать данный IP-адрес. В зависимости от конфигурации компьютера в окне присутствует одно или несколько подключений.
  • В появившемся диалоговом окне Status (Состояние) нажмите на кнопку Properties (Свойства).
  • Отобразится окно свойств для рассматриваемого соединения. Выберите Internet Protocol (TCP/IP), после чего нажмите на кнопку Properties (Свойства).
  • Нажмите на кнопку Advanced (Дополнительно) в появившемся окне свойств для открытия окна Advanced TCP/IP Settings (Дополнительные параметры TCP/IP).
  • В области IP-адреса вкладки IP Settings (Настройка IP) (вкладка по умолчанию) нажмите на кнопку Add (Добавить).
  • Введите IP-адрес и маску подсети тестового сайта в окне TCP/IP Address (Адрес TCP/IP), после чего нажмите на кнопку Add (Добавить).
  • Повторите шаги 6 и 7 для присвоения IP-адреса функционирующему сайту.
  • Присвойте рассматриваемому соединению шлюз по умолчанию, если таковой отсутствует.
  • Нажмите дважды на кнопку OK, после чего нажмите на кнопку Close (Закрыть).
  • Одному интерфейсу можно присвоить несколько IP-адресов. Запомните их, так как они потребуются в дальнейшем.

    Примечание. У пользователя может возникнуть вопрос: "А как же заголовки узла? Ведь они позволяют иметь несколько веб-сайтов на сервере?". Это хороший вопрос. Обычно заголовки узлов используются, поскольку с их помощью реализуется экономия IP-адресов. К сожалению, протокол защищенных сокетов SSL и заголовки узлов несовместимы друг с другом. Информация заголовка шифруется при передаче через SSL, поэтому ее сложно расшифровывать. Поэтому в нашем примере используется IP-адрес.

    Настройка DNS

    После регистрации доменного имени необходимо создать зону и настроить записи DNS для сервера. Мы будем использовать сервер Microsoft DNS, входящий в комплект WS03. (Для получения инструкций по установке сервера DNS обратитесь к лекции 8 курса "Администрирование web-серверов в IIS".)

    Для создания зоны прямого поиска выполните следующие шаги.

  • Откройте консоль MMC DNS с помощью команды Start\Administrative Tools\DNS.
  • Щелкните правой кнопкой мыши на записи Forward Lookup Zones (Зоны прямого поиска) и выберите Select New Zone (Выбрать новую зону).
  • Откроется мастер новой зоны (New Zone Wizard). Нажмите на кнопку Next (Далее).
  • В нашем случае создается главная зона, поэтому выберите соответствующую опцию и нажмите на кнопку Next (Далее).
  • Введите имя зоны ( beer-brewers.com ). Наш сервер DNS не является контроллером домена, и мы не будет хранить его в Active Directory.
  • Имя файла зоны по умолчанию нам подходит, поэтому нажмите на кнопку Next (Далее).
  • Укажите, следует ли разрешить динамические обновления. Не обязательно обеспечивать динамическое обновление записей, так как изменяться они будут нечасто. Выберите опцию запрета динамических обновлений, после чего нажмите на кнопку Next (Далее).
  • Нажмите на кнопку Finish (Готово).
  • (рис 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) (Создать узел А).
  • Именем нашего узла является "www", так как оно используется всеми пользователями сети интернет. Введите в поле имени (рис 7.2) Окно New Host (Новый узел) зоны www.beer-brewers.com
  • Введите IP-адрес рассматриваемого сайта (это IP-адрес, присвоенный серверу с IIS, выбранный ранее). Данный IP-адрес будет присвоен веб-сайту. Для записи WWW следует использовать IP-адрес сайта функционирования.
  • Для этой записи не будет создаваться Pointer Resource Record (PTR) (запись ресурса указателя), поскольку для блока IP не реализуется зона обратного поиска. Позже для добавления записи обратной зоны можно будет отправить IP-адрес и имя записи PTR поставщику услуг интернета.
  • Нажмите на кнопку Add Host (Добавить узел).
  • Нажмите на кнопку Done (Готово).
  • Повторите эти шаги для создания еще одной записи "А" для тестового сайта. Имя записи Host Record тестового сайта – test.
  • Мы создали в нашей зоне запись "А", позволяющую клиентам использовать www в имени хоста. Теперь при вводе пользователем вводить в адресной строке браузера адреса http://www.beer-brewers.com произойдет подключение к DNS-серверу, использующему IP-адрес, связанный с данным URL.

    Подготовка сервера

    Данный процесс включает в себя:

  • проверку устойчивости сервера;
  • создание каталога для веб-сайта;
  • обеспечение безопасности разрешений файловой системы NTFS для сайта.
  • Проверка устойчивости сервера

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

  • Установлены все необходимые надстройки операционной системы и приложений, особенно надстройки безопасности?
  • Включен на рассматриваемом сервере аудит в локальной политике безопасности?
  • Все учетные записи данного сервера имеют сложный пароль?
  • Включены в IIS только необходимые опции?
  • Используется файловая система NTFS, и являются разрешения безопасными?
  • Используются для каких-либо компонентов повышенные привилегии?
  • Существует постоянная оценка и обновление безопасности на данном сервере?
  • Создание каталога для веб-сайта

    По умолчанию IIS устанавливается в каталог C:\Inetpub. Вероятно, потребуется отделить файлы операционной системы от файлов приложений, установленных на рассматриваемом компьютере. Веб-сайта можно записать на другое устройство (например, на D:) либо создать папку Web Site на диске E: и записать в нее файлы веб-сайта. Так обеспечивается безопасность с наследованием разрешений. Кроме того, обновление, форматирование или повреждение устройства C: не влияет на данные, хранящиеся на диске D: или E:.

    Обеспечение безопасности разрешений NTFS сайта

    При создании и форматировании нового устройства с использованием файловой системы NTFS ему присваиваются следующие разрешения.

    Учетная запись безопасностиРазрешения
    Группа локального администрирования Полный контроль.
    SYSTEM Полный контроль.
    CREATOR OWNER (Создатель-владелец) Полный контроль.
    Users (Пользователи) Чтение и выполнение, создание папок/присоединение данных, создание файлов/запись данных.
    Everyone (Все) Чтение и выполнение.

    Эти разрешения позволяют выполнять действия, выходящие за рамки того, что требуется для рассматриваемого сайта. Кроме того, Internet Guest Account (гостевая учетная запись интернета) не содержит легко контролируемых прав для данной папки, а только разрешения групп Everyone (Все) и Users (Пользователи). Не рекомендуется напрямую присваивать ресурсы определенной учетной записи, может потребоваться более высокий уровень контроля над тем, что доступно учетной записи анонимного пользователя. Выходом из данной ситуации является создание локальной группы, присвоение этой группе прав NTFS и включение в нее анонимного пользователя. Таким образом, для предоставления разрешения другой учетной записи пользователя ее нужно лишь добавить в эту группу.

    Разрешения папки настраиваются следующим образом.

  • Откройте консоль MMC Computer Management (Управление компьютером) с помощью команды Star\Administrative Tools\Computer Management (Пуск\Администрирование\Управление компьютером).
  • Разверните пункт Local Users and Groups (Локальные пользователи и группы).
  • Щелкните на контейнере Groups (Группы).
  • Создайте новую группу, выбрав команду Action\New Group (Действие\Создать группу). Отобразится окно New Group (Новая группа).
  • Укажите имя группы Anonymous Access for BeerBrewers Site. Это имя подходит также и для описания (см. рис 7.3(рис 7.3) Группа Anonymous Access for BeerBrewers Site
  • Присвойте рассматриваемому сайту учетную запись Internet Guest Account (Гостевая учетная запись интернета), нажав на кнопку Add (Добавить) и введя имя учетной записи Internet Guest Account в окне Select Users. Как было сказано в лекцию 2 курса "Администрирование web-серверов в IIS", эта учетная запись создается при установке IIS, и ей присваивается имя IUSR_имя-компьютера. В нашем примере учетной записи присваивается имя IUSR_MYCOMPUTER.
  • Нажмите на кнопку OK, чтобы добавить учетную запись в область Members (Члены) группы.
  • Нажмите на кнопку Create (Создать) для завершения создания группы, затем нажмите на кнопку Close (Закрыть) для закрытия окна New group (Новая группа).
  • После создания группы ее можно включить в разрешения безопасности папки, в которой располагается веб-сайт. Создаваемый сайт является совершенно новым, поэтому сначала необходимо создать папку.

  • Создайте соответствующую папку на диске E: с помощью Проводника Windows (Windows Explorer) и назовите ее BeerBrewers Site.
  • Откройте окно свойств этой папки, щелкнув на ней правой кнопкой мыши и выбрав команду Properties (Свойства).
  • Откройте вкладку Security (Безопасность) папки (см. рис. 7.4). Первое, что необходимо сделать – отключить наследование разрешений. Нажмите на кнопку Advanced (Дополнительно) и отключите опцию Allow Inheritable Permissions From The Parent To Propogate To This Object And All Child Objects (Разрешить распространение наследуемых разрешений родительского объекта на данный объект и все дочерние объекты).
  • При отключении опции откроется диалоговое окно Security (Безопасность), предлагающее скопировать или удалить разрешения. Нажмите на кнопку Copy (Копировать), чтобы скопировать разрешения.
  • Нажмите на кнопку OK для выхода из окна Advanced Security Settings (Дополнительные настройки безопасности).
  • Удалите объекты Creator Owner (Создатель-владелец) и Users (Пользователи) из списка Group Or User Names (Группы или имена пользователей), щелкая на имени и нажимая на кнопку Remove (Удалить).
  • Рассматриваемая группа Anonymous (Анонимные пользователи) будет по умолчанию иметь разрешения Read Execute (Чтение и выполнение), List Folder Contents (Просмотр содержимого папки) и Read (Чтение) (см. рис. 7.4). Эти параметры приемлемы для рассматриваемого сайта.
  • (рис 7.4) Вкладка окна Site Properties (Свойства сайта)

    Мы создали папку, управление которой осуществляют группы Administrators (Администраторы) и Operating System (Операционная система), а чтение и выполнение – все остальные лица. Повторите шаги 1-7 для создания среды разработки для разрабатываемого веб-сайта BeerBrewers Test Site. Для разрешений используйте одну и ту же группу (на самом деле такой подход даже лучше).

    Добавление веб-сайтов в IIS

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

  • В консоли IIS MMC выделите Web Sites (Веб-узлы).
  • Выберите команду Action\New\Web Site (Действие\Создать\Веб-сайт).
  • Откроется мастер веб-сайта (Web Site Creation Wizard). Нажмите на кнопку Next (Далее).
  • Введите описание (beer-brewers.com test site).
  • Нажмите на кнопку Next (Далее).
  • В окне IP addresses and Port Settings (IP-адреса и параметры порта) в ниспадающем списке выберите IP-адрес.
  • Нажмите на кнопку Next (Далее).
  • В окне Web Site Home Directory (Домашний каталог веб-сайта) перейдите к папке тестового сайта и выделите ее.
  • Дважды нажмите на кнопку Next (Далее), после чего нажмите на кнопку Finish (Готово).
  • Повторите эти шаги для создания функционирующего веб-сайта.

    Включение ASP

    При первой установке веб-сервера страницы ASP отключены согласно политике Microsoft "отключения по умолчанию". Из этого следует, что их нужно включить для рассматриваемого веб-сервера.

  • В консоли IIS MMC щелкните на пункте Service Extensions (Расширения служб), чтобы развернуть папку.
  • Выделите пункт Active Server Pages (ASP), после чего нажмите на Allow (Разрешить).
  • Все довольно просто. Теперь технология ASP включена для всех сайтов на данном сервере.

    Настройка пула приложения

    После создания сайтов настало время заняться настройкой пула приложения. С тестовым сайтом связано небольшое количество трафика, поэтому он может оставаться в своем собственном пуле. Для функционирующего сайта мы создадим пул приложения. На данный момент он не особо нужен, так как наш сайт представляет собой лишь форму ASP, однако по мере его роста и применения более сложных компонентов (например, библиотек DLL ActiveX) потребность в рециркуляции рабочих процессов возрастет. Это также отделит процесс нашего функционирующего сайта от всех других сайтов.

    Для создания пула приложения для рассматриваемого сайта выполните следующие шаги.

  • В консоли IIS MMC выделите Application Pools (Пулы приложения).
  • Выберите команду Action\New\Application Pool (Действие\Создать\Пул приложения).
  • В окне Add New Application Pool (Добавление нового пула приложения) введите имя пула приложения (beer-brewers app pool).
  • Нажмите на кнопку OK.
  • На данный момент настройки по умолчанию данного пула приложения нас устраивают.

    Теперь присвоим данный пул приложения сайту:

  • В консоли IIS MMC выделите конечный сайт.
  • Выберите команду Action\Properties (Действие\Свойства).
  • В окне cвойств веб-сайта откройте вкладку Home Directory (Домашний каталог).
  • В ниспадающем списке Application Pool (Пул приложения) выберите новый пул приложения.
  • Нажмите на кнопку OK.
  • Написание кода

    Данный код реализует простой веб-сайт со страницей по умолчанию и меню, расположенным вверху страницы и содержащим три ссылки: 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 тестового сайта. Один набор этих файлов располагается в каталоге функционирующего сайта, а другой – в каталоге тестирования. Страница newsletter.htm представляет собой лишь новостное письмо, и с ней не связан какой-либо код, поэтому здесь она не приводится.

    Создание базы данных

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

    ИнформацияИмя поляТип поляДлина поля
    Имя FirstName Text 255
    Фамилия LastName Text 255
    Адрес Address Text 255
    Город City Text 255
    Регион State Text 255
    Почтовый код Zip Text 255
    Страна Country Text 255
    Адрес электронной почты Email 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)
    )

    После создания базы данных создадим для нее DSN.

  • Выберите команду Start\Administrative Tools\Data Sources (ODBC) (Пуск\Администрирование\Источники данных ODBC).
  • В окне Data Sources Administrator (Администратор источников данных) откройте вкладку System DSN (Системное DSN).
  • Нажмите на кнопку Add (Добавить) для добавления нового источника данных.
  • В окне Create New Data Source (Создание нового источника данных) выберите опцию Microsoft Access Driver ( *.mdb ) (Драйвер Microsoft Access).
  • Нажмите на кнопку Finish (Готово).
  • Введите имя источника данных: BeerBrewersDSN.
  • Нажмите на кнопку кнопку Select (Выбрать) и перейдите к базе данных Access, созданной ранее ( E:\Databases\BeerBrewersDB.mdb ).
  • После выбора базы данных Access нажмите на кнопку OK несколько раз, чтобы закрыть окно ODBC Administrator (Администратор ODBC).
  • Выполните те же шаги для тестовой базы данных, предназначенной для тестового веб-сайта. При желании можно создать в базе данных BeerBrewersDB.mdb еще одну таблицу. Таким образом, исчезнет необходимость в создании каталога или нового DSN, и можно будет просто вставить новую таблицу с теми же параметрами.

    Совет. Если для создания таблицы используется Microsoft Access, то убедитесь в том, что все поля установлены равными значению Allow Zero Length = Yes (Разрешить нулевую длину = Да). Значением по умолчанию является No (Нет), но в этом случае возникнет ошибка, если не все поля будут заполнены.

    Получение сертификата для тестового сайта

    Так как рассматриваемый сайт осуществляет сбор имен, адресов и другой личной информации, следует применить шифрование интернет-трафика. Кроме того, подлинность сайта в интернете будет доказываться сертификатом, за счет чего пользователи будут относиться к сайту с большим доверием. Для тестового сайта подойдет "доморощенный" сертификат. Для основного функционирующего сайта потребуется коммерческий сертификат.

    Как говорилось в лекции 10 курса "Администрирование web-серверов в IIS", свое собственное бюро сертификатов (CA) рекомендуется сделать автономным корневым бюро сертификатов, после чего делегировать сертификат подчиненному CA. Затем можно использовать подчиненное бюро сертификатов для выпуска сертификатов без опасности проникновения злоумышленника во всю систему сертификации. Так как рассматриваемый сертификат предназначается для тестового сайта, который не будет отображаться конечным пользователям, нам проще создать CA и выпустить с его помощью сертификат. По-прежнему рекомендуется выпускать сертификат с другого компьютера. Кроме всего прочего, мы используем тестовый сертификат лишь для того, чтобы убедиться в корректной настройке кода SSL.

    Получение и установка тестового сертификата состоит из трех шагов.

  • Запрос сертификата в IIS MMC.
  • Создание запроса на сертификат, генерация сертификата в CA MMC и экспорт сертификата.
  • Обработка запроса и установка экспортированного сертификата обратно в IIS MMC.
  • Запрос на сертификат осуществляется следующим образом.

  • Установите Certificate Services (Службы сертификатов) на другой компьютер.
  • Откройте окно Properties (Свойства) для тестового веб-сайта.
  • На вкладке Directory Security (Безопасность каталога) нажмите на кнопку Server Certificate (Сертификат сервера).
  • Отобразится мастер сертификата веб-сервера (Web Server Certificate Wizard). Нажмите на кнопку Next (Далее).
  • Выберите создание нового сертификата, после чего нажмите на Next (Далее).
  • Выберите опцию Prepare The Request Now, But Send It Later (Подготовить запрос сейчас, но отправить его позже) и нажмите на Next (Далее).
  • Введите имя сертификата: beer-brewers.com test site.
  • Выберите число бит; в нашем случае достаточно 1024.
  • Нажмите на кнопку Next (Далее).
  • Введите название организации: beer-brewers.com.
  • Отдел организации относится к тем организациям, в которых имеется несколько отделов или подразделений. В нашем случае просто укажите beer-brewers.com.
  • Нажмите на кнопку Next (Далее).
  • Общее имя является важным параметром, оно представляет собой имя DNS сайта. Поэтому для нашего сайта мы будем использовать имя test.beer-brewers.com.
  • Нажмите на кнопку Next (Далее).
  • Выберите Country/Region (Страна/регион), State/Province (Штат/область) и City/Locality (Город/Район). Сокращения здесь использовать не следует.
  • Нажмите на кнопку Next (Далее).
  • Укажите имя для запроса на сертификат. Запомните это имя и расположение; файл запроса понадобится нам в следующем разделе.
  • Нажмите на кнопку Next (Далее) дважды.
  • Нажмите на кнопку Finish (Готово).
  • После создания запроса на сертификат можно выпустить сам сертификат.

  • Откройте консоль MMC Certification Authority (Бюро сертификатов).
  • Выделите имя CA, после чего выберите Action\All Tasks\Submit New Request (Действие\Все задачи\Отправить новый запрос).
  • Перейдите к расположению запроса на сертификат. Если он расположен на компьютере, не доступном через сеть, придется скопировать запрос на гибкий диск и перенести его на этот компьютер.
  • Выделите файл и нажмите на кнопку Open (Открыть).
  • Запрос на сертификат теперь расположен в папке Pending Requests. Далее необходимо выпустить сертификат. Выделите запрос в папке Pending Requests, после чего выберите команду Action\All Tasks\Issue (Действие\Все задачи\Выпустить).
  • После этого сертификат будет перемещен в папку Issued Certificates (папка изданных сертификатов). Теперь сертификат можно экспортировать для отправки на веб-сервер. Выделите сертификат в папке Issued Certificates и выполните команду Action\All Tasks\Export Binary Data (Действие\Все задачи\Экспорт двоичных данных).
  • Выберите экспорт Binary Certificate (Двоичный сертификат) и сохраните двоичные данные в файле.
  • Нажмите на кнопку OK.
  • Выберите имя для данного сертификата. Запомните имя и расположение; этот файл понадобится в следующем разделе. Рекомендуется использовать расширение .cer.
  • Теперь можно вернуться в IIS и обработать запрос для использования.

  • В консоли MMC запустите мастер сертификатов веб-сервера (Web Server Certificate Wizard).
  • Нажмите на кнопку Next (Далее).
  • Выберите обработку запроса в ожидании, после чего нажмите на кнопку Next (Далее).
  • Выберите файл сертификата, после чего нажмите на кнопку Next (Далее).
  • Выберите порт SSL, используемый для данного сертификата. Значение по умолчанию 443 нам подойдет. Нажмите на кнопку Next (Далее).
  • Нажмите на Next (Далее), после чего нажмите на кнопку Finish (Готово).
  • Теперь у нас есть полностью установленный сертификат тестового сайта, и его можно использовать при тестировании кода. По окончании работы не забудьте удалить как файл запроса, так и экспортированный файл сертификата. Заполучив эти файлы, кто-то сможет осуществить несанкционированный доступ к сертификату.

    Получение сертификата для функционирующего сайта

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

    Процесс получения сертификата функционирующего сайта аналогичен случаю с тестовым сайтом, за исключением того, что коммерческий сертификат запрашивается у коммерческого CA, и отправляется файл запроса.

  • Запросите сертификат в консоли IIS MMC.
  • Откройте сайт коммерческого бюро сертификатов и запросите сертификат.
  • Отправьте в онлайн-бюро файл запроса, сгенерированный в IIS.
  • Обработайте запрос посредством установки файла ответа CA.
  • Каждое коммерческое бюро сертификатов имеет свой процесс получения сертификата. Важно помнить, что информация запроса на сертификат должна соответствовать информации, используемой в запрашивающей организации. Для больших компаний большое значение имеет номер D-U-N-S. В нашем случае не идет речь о корпорации, поэтому идентификация рассматриваемой компании осуществляется отправкой письма от президента клуба на официальном бланке компании. В остальном же для установки сертификата необходимо выполнить такие же шаги, как и для тестового сайта.

    Примечание. Обратитесь к лекции 10 курса "Администрирование web-серверов в IIS" для получения дополнительной информации, связанной с сертификатами.

    Настройка безопасности веб-сайта

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

    Создание учетной записи пользователя

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

    Создание группы

  • Откройте консоль MMC Computer Management (Управление компьютером).
  • Выделите в пункте Local Users and Groups (Локальные пользователи и группы) запись Groups (Группы).
  • Выберите команду Action\New Group (Действие\Создать группу).
  • Введите имя группы: BeerBrewers Newsletter Group.
  • Нажмите на кнопку Create (Создать).
  • Создание пользователей

  • В консоли MMC выделите в пункте Local Users and Groups (Локальные пользователи и группы) запись Users (Пользователи).
  • Выберите команду Action\New User (Действие\Создать пользователя).
  • Введите имя пользователя и пароль нового пользователя.
  • Отключите опцию User Must Change Password At Next Logon (Пользователь должен изменить пароль при следующем входе).
  • Нажмите на кнопку Create (Создать).
  • Добавление пользователя в группу

  • В консоли MMC откройте запись Groups (Группы) в пункте Local Users and Groups (Локальные пользователи и группы).
  • Дважды щелкните на группе BeerBrewers Newsletter Group.
  • Нажмите на кнопку Add (Добавить).
  • Выберите учетную запись пользователя, которую следует добавить в данную группу.
  • Нажмите на кнопку OK два раза.
  • Установка разрешений NTFS

    После создания группы ей нужно присвоить права файловой системы. До этого мы присвоили права анонимной группе; теперь настало время добавить в список группу сайта BeerBrewers. Группу следует связывать только с тем файлом (файлами), который должен быть защищен. В данном случае речь идет о файле newsletter.htm.

  • В Windows Explorer (Проводник Windows) найдите файл newsletter.htm.
  • Щелкните на файле правой кнопкой мыши и выберите Properties (Свойства).
  • Откройте вкладку Security (Безопасность).
  • Нажмите на кнопку Add (Добавить).
  • Найдите группу BeerBrewers Newsletter Group.
  • Нажмите на OK.
  • Наделите группу BeerBrewers Newsletter Group правами чтения и выполнения файла.
  • Нажмите на OK.
  • Настройка параметров аутентификации

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

  • Откройте консоль MMC IIS и найдите файл newsletter.htm.
  • Щелкните на файле правой кнопкой мыши и выберите Proeprties (Свойства).
  • Откройте вкладку File Security (Безопасность файлов).
  • Нажмите на кнопку Edit (Изменить) в области Authentication And Access Control (Аутентификация и контроль доступа).
  • Отключите опцию Enable Anonymous Access (Включить анонимный доступ).
  • Для сайта будет использоваться только базовая аутентификация, поэтому следует отметить опцию Basic Authentication (Базовая аутентификация) и отключить опцию Integrated Windows Authentication (Интегрированная аутентификация Windows).
  • Нажмите на OK один раз; вкладка File Security (Безопасность файлов) останется открытой.
  • Стоп!

    Читатель: Минуточку, разве базовая аутентификация рекомендуется к использованию, ведь в процессе ее работы пароль передается открытым текстом?

    Автор: Как правило, да. Но у нас есть сертификат! Весь трафик, связанный с данной страницей, будет зашифрованным.

    Читатель: Хорошо, у нас есть сертификат, но как заставить всех его использовать?

    Автор: Об этом рассказывается ниже.

    Принудительное использование SSL для обхода передачи паролей в открытом виде через интернет реализуется следующим образом.

  • Нажмите на кнопку Edit (Изменить) в области Secure Communications (Безопасные соединения).
  • Включите опцию Require Secure Channel (SSL).
  • При желании затребуйте 128-битное шифрование, однако в этом случае браузеры, в которых не установлена поддержка 128-битного шифрования, не смогут осуществлять доступ к сайту.
  • Нажмите на OK.два раза.
  • Теперь рассматриваемый файл защищен паролем, причем пароль также защищен.

    Тестирование кода

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

  • Проверено правильное функционирование каждой страницы?
  • Все ссылки сайта функционируют?
  • Присутствуют поврежденные или ненужные ссылки?
  • Установлен и работает ли DSN?
  • Генерируется сообщение об ошибке при незаполнении полей?
  • Является конфигурация безопасности излишней, недостаточной или подходящей?
  • Правильно функционирует SSL?
  • Присутствуют на данном компьютере двоичные файлы сертификата и запроса?
  • Правильно настроены разрешения файловой системы?
  • Возможно вызвать сбой в системе посредством ввода некорректных данных?
  • Примечание. Для нашего веб-сайта не предусмотрена проверка ошибок для полей, поэтому в них можно вводить некорректные данные. В реальной же ситуации рекомендуется реализовывать проверку полей формы.

    Перенос сайта в среду функционирования

    После всестороннего тестирования кода и его проверки согласно плану тестирования, самое время запустить код в работу. Важно протестировать в среде тестирования все возможные изменения, которые могут произойти в будущем, перед переводом кода в состояние функционирования. Таким образом, мы получили полнофункциональный веб-сайт!

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

    Страницы:

    Теперь, после рассмотрения отдельных компонентов IIS, попробуем с самого начала создать свой собственный веб-сайт. Мы начнем с сервера, на котором установлена операционная система WS03, и закончим полнофункциональным веб-сайтом. Создаваемый сайт будет простым сайтом ASP с базой данных Access, в которую пользователи будут вводить свои имена и другую информацию, чтобы отправлять ежемесячные новости пивоваренной компании. В данной лекции описываются несложные методы программирования, призванные внести ясность в то, каким образом все компоненты взаимодействуют друг с другом.

    При создании сайта мы выполним следующие этапы (в зависимости от типа создаваемого сайта эти шаги могут варьироваться).

  • Получение доменного имени.
  • Получение IP-адреса.
  • Настройка адресов DNS (системы имен доменов).
  • Подготовка сервера.
  • Добавление веб-сайтов в IIS.
  • Включение ASP.
  • Настройка пула приложения.
  • Написание кода.
  • Создание базы данных.
  • Получение сертификата для тестового сайта.
  • Получение сертификата для функционирующего сайта.
  • Настройка безопасности веб-сайта.
  • Тестирование кода.
  • Перенос сайта в среду функционирования.
  • Получение доменного имени

    Первым шагом является выбор и получение доменного имени. В большинстве случаев сначала нужно определить, свободно ли доменное имя, после чего зарегистрировать его в режиме онлайн. Многие имена доменов уже заняты, но, тем не менее, имеются и свободные имена (добавьте в имя дополнительные символы или слова). Например, если имя beerbrewers.com уже занято, выберите другое имя: beer-brewers.com, sudsbrewers.com или berbrewerz.com. Выберите другое расширение: beerbrewers.org или beerbrewers.biz. Некоторые регистраторы имен доменов налагают ограничения на использование доменов верхнего уровня (TLD); чтобы выяснить это, посетите веб-сайт компании-регистратора.

    Остановимся на имени beer-brewers.com (предположим, что оно свободно). После выбора имени домена его необходимо зарегистрировать. Каждая компания-регистратор предусматривает свой процесс регистрации, поэтому в данном случае также следует посетить ее сайт. В большинстве компаний запрашивается следующая информация.

  • Имя.
  • Адрес.
  • Телефон/факс.
  • Техническая контактная информация.
  • Административная контактная информация.
  • Имя пользователя и пароль регистрируемого сайта.
  • Имя и IP-адрес сервера службы DNS, на котором располагаются записи.
  • Информация об оплате.
  • Регистраторы сохраняют только информацию о сервере DNS, на котором располагаются записи домена; они не хранят информацию о записях A в зонах, созданных клиентом в данном домене. Следовательно, нужно предоставить только имена первичного и вторичного серверов DNS, на которых расположены записи рассматриваемого домена. После настройки этих параметров рекомендуется реализовать хостинг записей сайта на раздельных серверах DNS. Нередко при использовании высокоскоростного подключения (не ниже T1) поставщик услуг интернета (ISP) выступает в роли вторичного сервера DNS для компании-регистратора.

    Примечание. Как говорилось в лекции 8 курса "Администрирование web-серверов в IIS", зона "A" является частью домена DNS. Термин "зона" обычно используется для обозначения части домена по отношению к серверу DNS. Поддоменом называется часть домена, входящая в состав зоны. Если в домене существует только одна зона, то используется любой из этих терминов. Запись "А" представляет собой запись DNS Address. Этот тип записи идентифицирует запись несущего ресурса и связывает доменное имя DNS с 32-битным адресом IPv4.

    Получение IP-адреса

    Следующим шагом является получение двух IP-адресов от поставщика услуг интернета (или выбор адресов из блока доступных). После этого адреса можно присвоить серверу: один IP-адрес – для тестового сайта, а другой – для функционирующего. Необходимы статические неизменные IP-адреса; их изменение сделает веб-сайт недоступным, до тех пор пока не будет обновлен DNS.

    После получения статических IP-адресов они присваиваются серверу следующим образом.

  • В Control Panel (Панель управления) откройте Network Connections (Сетевые подключения).
  • Дважды щелкните на соединении, которое будет использовать данный IP-адрес. В зависимости от конфигурации компьютера в окне присутствует одно или несколько подключений.
  • В появившемся диалоговом окне Status (Состояние) нажмите на кнопку Properties (Свойства).
  • Отобразится окно свойств для рассматриваемого соединения. Выберите Internet Protocol (TCP/IP), после чего нажмите на кнопку Properties (Свойства).
  • Нажмите на кнопку Advanced (Дополнительно) в появившемся окне свойств для открытия окна Advanced TCP/IP Settings (Дополнительные параметры TCP/IP).
  • В области IP-адреса вкладки IP Settings (Настройка IP) (вкладка по умолчанию) нажмите на кнопку Add (Добавить).
  • Введите IP-адрес и маску подсети тестового сайта в окне TCP/IP Address (Адрес TCP/IP), после чего нажмите на кнопку Add (Добавить).
  • Повторите шаги 6 и 7 для присвоения IP-адреса функционирующему сайту.
  • Присвойте рассматриваемому соединению шлюз по умолчанию, если таковой отсутствует.
  • Нажмите дважды на кнопку OK, после чего нажмите на кнопку Close (Закрыть).
  • Одному интерфейсу можно присвоить несколько IP-адресов. Запомните их, так как они потребуются в дальнейшем.

    Примечание. У пользователя может возникнуть вопрос: "А как же заголовки узла? Ведь они позволяют иметь несколько веб-сайтов на сервере?". Это хороший вопрос. Обычно заголовки узлов используются, поскольку с их помощью реализуется экономия IP-адресов. К сожалению, протокол защищенных сокетов SSL и заголовки узлов несовместимы друг с другом. Информация заголовка шифруется при передаче через SSL, поэтому ее сложно расшифровывать. Поэтому в нашем примере используется IP-адрес.

    Настройка DNS

    После регистрации доменного имени необходимо создать зону и настроить записи DNS для сервера. Мы будем использовать сервер Microsoft DNS, входящий в комплект WS03. (Для получения инструкций по установке сервера DNS обратитесь к лекции 8 курса "Администрирование web-серверов в IIS".)

    Для создания зоны прямого поиска выполните следующие шаги.

  • Откройте консоль MMC DNS с помощью команды Start\Administrative Tools\DNS.
  • Щелкните правой кнопкой мыши на записи Forward Lookup Zones (Зоны прямого поиска) и выберите Select New Zone (Выбрать новую зону).
  • Откроется мастер новой зоны (New Zone Wizard). Нажмите на кнопку Next (Далее).
  • В нашем случае создается главная зона, поэтому выберите соответствующую опцию и нажмите на кнопку Next (Далее).
  • Введите имя зоны ( beer-brewers.com ). Наш сервер DNS не является контроллером домена, и мы не будет хранить его в Active Directory.
  • Имя файла зоны по умолчанию нам подходит, поэтому нажмите на кнопку Next (Далее).
  • Укажите, следует ли разрешить динамические обновления. Не обязательно обеспечивать динамическое обновление записей, так как изменяться они будут нечасто. Выберите опцию запрета динамических обновлений, после чего нажмите на кнопку Next (Далее).
  • Нажмите на кнопку Finish (Готово).
  • (рис 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) (Создать узел А).
  • Именем нашего узла является "www", так как оно используется всеми пользователями сети интернет. Введите в поле имени (рис 7.2) Окно New Host (Новый узел) зоны www.beer-brewers.com
  • Введите IP-адрес рассматриваемого сайта (это IP-адрес, присвоенный серверу с IIS, выбранный ранее). Данный IP-адрес будет присвоен веб-сайту. Для записи WWW следует использовать IP-адрес сайта функционирования.
  • Для этой записи не будет создаваться Pointer Resource Record (PTR) (запись ресурса указателя), поскольку для блока IP не реализуется зона обратного поиска. Позже для добавления записи обратной зоны можно будет отправить IP-адрес и имя записи PTR поставщику услуг интернета.
  • Нажмите на кнопку Add Host (Добавить узел).
  • Нажмите на кнопку Done (Готово).
  • Повторите эти шаги для создания еще одной записи "А" для тестового сайта. Имя записи Host Record тестового сайта – test.
  • Мы создали в нашей зоне запись "А", позволяющую клиентам использовать www в имени хоста. Теперь при вводе пользователем вводить в адресной строке браузера адреса http://www.beer-brewers.com произойдет подключение к DNS-серверу, использующему IP-адрес, связанный с данным URL.

    Подготовка сервера

    Данный процесс включает в себя:

  • проверку устойчивости сервера;
  • создание каталога для веб-сайта;
  • обеспечение безопасности разрешений файловой системы NTFS для сайта.
  • Проверка устойчивости сервера

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

  • Установлены все необходимые надстройки операционной системы и приложений, особенно надстройки безопасности?
  • Включен на рассматриваемом сервере аудит в локальной политике безопасности?
  • Все учетные записи данного сервера имеют сложный пароль?
  • Включены в IIS только необходимые опции?
  • Используется файловая система NTFS, и являются разрешения безопасными?
  • Используются для каких-либо компонентов повышенные привилегии?
  • Существует постоянная оценка и обновление безопасности на данном сервере?
  • Создание каталога для веб-сайта

    По умолчанию IIS устанавливается в каталог C:\Inetpub. Вероятно, потребуется отделить файлы операционной системы от файлов приложений, установленных на рассматриваемом компьютере. Веб-сайта можно записать на другое устройство (например, на D:) либо создать папку Web Site на диске E: и записать в нее файлы веб-сайта. Так обеспечивается безопасность с наследованием разрешений. Кроме того, обновление, форматирование или повреждение устройства C: не влияет на данные, хранящиеся на диске D: или E:.

    Обеспечение безопасности разрешений NTFS сайта

    При создании и форматировании нового устройства с использованием файловой системы NTFS ему присваиваются следующие разрешения.

    Учетная запись безопасностиРазрешения
    Группа локального администрирования Полный контроль.
    SYSTEM Полный контроль.
    CREATOR OWNER (Создатель-владелец) Полный контроль.
    Users (Пользователи) Чтение и выполнение, создание папок/присоединение данных, создание файлов/запись данных.
    Everyone (Все) Чтение и выполнение.

    Эти разрешения позволяют выполнять действия, выходящие за рамки того, что требуется для рассматриваемого сайта. Кроме того, Internet Guest Account (гостевая учетная запись интернета) не содержит легко контролируемых прав для данной папки, а только разрешения групп Everyone (Все) и Users (Пользователи). Не рекомендуется напрямую присваивать ресурсы определенной учетной записи, может потребоваться более высокий уровень контроля над тем, что доступно учетной записи анонимного пользователя. Выходом из данной ситуации является создание локальной группы, присвоение этой группе прав NTFS и включение в нее анонимного пользователя. Таким образом, для предоставления разрешения другой учетной записи пользователя ее нужно лишь добавить в эту группу.

    Разрешения папки настраиваются следующим образом.

  • Откройте консоль MMC Computer Management (Управление компьютером) с помощью команды Star\Administrative Tools\Computer Management (Пуск\Администрирование\Управление компьютером).
  • Разверните пункт Local Users and Groups (Локальные пользователи и группы).
  • Щелкните на контейнере Groups (Группы).
  • Создайте новую группу, выбрав команду Action\New Group (Действие\Создать группу). Отобразится окно New Group (Новая группа).
  • Укажите имя группы Anonymous Access for BeerBrewers Site. Это имя подходит также и для описания (см. рис 7.3(рис 7.3) Группа Anonymous Access for BeerBrewers Site
  • Присвойте рассматриваемому сайту учетную запись Internet Guest Account (Гостевая учетная запись интернета), нажав на кнопку Add (Добавить) и введя имя учетной записи Internet Guest Account в окне Select Users. Как было сказано в лекцию 2 курса "Администрирование web-серверов в IIS", эта учетная запись создается при установке IIS, и ей присваивается имя IUSR_имя-компьютера. В нашем примере учетной записи присваивается имя IUSR_MYCOMPUTER.
  • Нажмите на кнопку OK, чтобы добавить учетную запись в область Members (Члены) группы.
  • Нажмите на кнопку Create (Создать) для завершения создания группы, затем нажмите на кнопку Close (Закрыть) для закрытия окна New group (Новая группа).
  • После создания группы ее можно включить в разрешения безопасности папки, в которой располагается веб-сайт. Создаваемый сайт является совершенно новым, поэтому сначала необходимо создать папку.

  • Создайте соответствующую папку на диске E: с помощью Проводника Windows (Windows Explorer) и назовите ее BeerBrewers Site.
  • Откройте окно свойств этой папки, щелкнув на ней правой кнопкой мыши и выбрав команду Properties (Свойства).
  • Откройте вкладку Security (Безопасность) папки (см. рис. 7.4). Первое, что необходимо сделать – отключить наследование разрешений. Нажмите на кнопку Advanced (Дополнительно) и отключите опцию Allow Inheritable Permissions From The Parent To Propogate To This Object And All Child Objects (Разрешить распространение наследуемых разрешений родительского объекта на данный объект и все дочерние объекты).
  • При отключении опции откроется диалоговое окно Security (Безопасность), предлагающее скопировать или удалить разрешения. Нажмите на кнопку Copy (Копировать), чтобы скопировать разрешения.
  • Нажмите на кнопку OK для выхода из окна Advanced Security Settings (Дополнительные настройки безопасности).
  • Удалите объекты Creator Owner (Создатель-владелец) и Users (Пользователи) из списка Group Or User Names (Группы или имена пользователей), щелкая на имени и нажимая на кнопку Remove (Удалить).
  • Рассматриваемая группа Anonymous (Анонимные пользователи) будет по умолчанию иметь разрешения Read Execute (Чтение и выполнение), List Folder Contents (Просмотр содержимого папки) и Read (Чтение) (см. рис. 7.4). Эти параметры приемлемы для рассматриваемого сайта.
  • (рис 7.4) Вкладка окна Site Properties (Свойства сайта)

    Мы создали папку, управление которой осуществляют группы Administrators (Администраторы) и Operating System (Операционная система), а чтение и выполнение – все остальные лица. Повторите шаги 1-7 для создания среды разработки для разрабатываемого веб-сайта BeerBrewers Test Site. Для разрешений используйте одну и ту же группу (на самом деле такой подход даже лучше).

    Добавление веб-сайтов в IIS

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

  • В консоли IIS MMC выделите Web Sites (Веб-узлы).
  • Выберите команду Action\New\Web Site (Действие\Создать\Веб-сайт).
  • Откроется мастер веб-сайта (Web Site Creation Wizard). Нажмите на кнопку Next (Далее).
  • Введите описание (beer-brewers.com test site).
  • Нажмите на кнопку Next (Далее).
  • В окне IP addresses and Port Settings (IP-адреса и параметры порта) в ниспадающем списке выберите IP-адрес.
  • Нажмите на кнопку Next (Далее).
  • В окне Web Site Home Directory (Домашний каталог веб-сайта) перейдите к папке тестового сайта и выделите ее.
  • Дважды нажмите на кнопку Next (Далее), после чего нажмите на кнопку Finish (Готово).
  • Повторите эти шаги для создания функционирующего веб-сайта.

    Включение ASP

    При первой установке веб-сервера страницы ASP отключены согласно политике Microsoft "отключения по умолчанию". Из этого следует, что их нужно включить для рассматриваемого веб-сервера.

  • В консоли IIS MMC щелкните на пункте Service Extensions (Расширения служб), чтобы развернуть папку.
  • Выделите пункт Active Server Pages (ASP), после чего нажмите на Allow (Разрешить).
  • Все довольно просто. Теперь технология ASP включена для всех сайтов на данном сервере.

    Настройка пула приложения

    После создания сайтов настало время заняться настройкой пула приложения. С тестовым сайтом связано небольшое количество трафика, поэтому он может оставаться в своем собственном пуле. Для функционирующего сайта мы создадим пул приложения. На данный момент он не особо нужен, так как наш сайт представляет собой лишь форму ASP, однако по мере его роста и применения более сложных компонентов (например, библиотек DLL ActiveX) потребность в рециркуляции рабочих процессов возрастет. Это также отделит процесс нашего функционирующего сайта от всех других сайтов.

    Для создания пула приложения для рассматриваемого сайта выполните следующие шаги.

  • В консоли IIS MMC выделите Application Pools (Пулы приложения).
  • Выберите команду Action\New\Application Pool (Действие\Создать\Пул приложения).
  • В окне Add New Application Pool (Добавление нового пула приложения) введите имя пула приложения (beer-brewers app pool).
  • Нажмите на кнопку OK.
  • На данный момент настройки по умолчанию данного пула приложения нас устраивают.

    Теперь присвоим данный пул приложения сайту:

  • В консоли IIS MMC выделите конечный сайт.
  • Выберите команду Action\Properties (Действие\Свойства).
  • В окне cвойств веб-сайта откройте вкладку Home Directory (Домашний каталог).
  • В ниспадающем списке Application Pool (Пул приложения) выберите новый пул приложения.
  • Нажмите на кнопку OK.
  • Написание кода

    Данный код реализует простой веб-сайт со страницей по умолчанию и меню, расположенным вверху страницы и содержащим три ссылки: 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 тестового сайта. Один набор этих файлов располагается в каталоге функционирующего сайта, а другой – в каталоге тестирования. Страница newsletter.htm представляет собой лишь новостное письмо, и с ней не связан какой-либо код, поэтому здесь она не приводится.

    Создание базы данных

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

    ИнформацияИмя поляТип поляДлина поля
    Имя FirstName Text 255
    Фамилия LastName Text 255
    Адрес Address Text 255
    Город City Text 255
    Регион State Text 255
    Почтовый код Zip Text 255
    Страна Country Text 255
    Адрес электронной почты Email 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)
    )

    После создания базы данных создадим для нее DSN.

  • Выберите команду Start\Administrative Tools\Data Sources (ODBC) (Пуск\Администрирование\Источники данных ODBC).
  • В окне Data Sources Administrator (Администратор источников данных) откройте вкладку System DSN (Системное DSN).
  • Нажмите на кнопку Add (Добавить) для добавления нового источника данных.
  • В окне Create New Data Source (Создание нового источника данных) выберите опцию Microsoft Access Driver ( *.mdb ) (Драйвер Microsoft Access).
  • Нажмите на кнопку Finish (Готово).
  • Введите имя источника данных: BeerBrewersDSN.
  • Нажмите на кнопку кнопку Select (Выбрать) и перейдите к базе данных Access, созданной ранее ( E:\Databases\BeerBrewersDB.mdb ).
  • После выбора базы данных Access нажмите на кнопку OK несколько раз, чтобы закрыть окно ODBC Administrator (Администратор ODBC).
  • Выполните те же шаги для тестовой базы данных, предназначенной для тестового веб-сайта. При желании можно создать в базе данных BeerBrewersDB.mdb еще одну таблицу. Таким образом, исчезнет необходимость в создании каталога или нового DSN, и можно будет просто вставить новую таблицу с теми же параметрами.

    Совет. Если для создания таблицы используется Microsoft Access, то убедитесь в том, что все поля установлены равными значению Allow Zero Length = Yes (Разрешить нулевую длину = Да). Значением по умолчанию является No (Нет), но в этом случае возникнет ошибка, если не все поля будут заполнены.

    Получение сертификата для тестового сайта

    Так как рассматриваемый сайт осуществляет сбор имен, адресов и другой личной информации, следует применить шифрование интернет-трафика. Кроме того, подлинность сайта в интернете будет доказываться сертификатом, за счет чего пользователи будут относиться к сайту с большим доверием. Для тестового сайта подойдет "доморощенный" сертификат. Для основного функционирующего сайта потребуется коммерческий сертификат.

    Как говорилось в лекции 10 курса "Администрирование web-серверов в IIS", свое собственное бюро сертификатов (CA) рекомендуется сделать автономным корневым бюро сертификатов, после чего делегировать сертификат подчиненному CA. Затем можно использовать подчиненное бюро сертификатов для выпуска сертификатов без опасности проникновения злоумышленника во всю систему сертификации. Так как рассматриваемый сертификат предназначается для тестового сайта, который не будет отображаться конечным пользователям, нам проще создать CA и выпустить с его помощью сертификат. По-прежнему рекомендуется выпускать сертификат с другого компьютера. Кроме всего прочего, мы используем тестовый сертификат лишь для того, чтобы убедиться в корректной настройке кода SSL.

    Получение и установка тестового сертификата состоит из трех шагов.

  • Запрос сертификата в IIS MMC.
  • Создание запроса на сертификат, генерация сертификата в CA MMC и экспорт сертификата.
  • Обработка запроса и установка экспортированного сертификата обратно в IIS MMC.
  • Запрос на сертификат осуществляется следующим образом.

  • Установите Certificate Services (Службы сертификатов) на другой компьютер.
  • Откройте окно Properties (Свойства) для тестового веб-сайта.
  • На вкладке Directory Security (Безопасность каталога) нажмите на кнопку Server Certificate (Сертификат сервера).
  • Отобразится мастер сертификата веб-сервера (Web Server Certificate Wizard). Нажмите на кнопку Next (Далее).
  • Выберите создание нового сертификата, после чего нажмите на Next (Далее).
  • Выберите опцию Prepare The Request Now, But Send It Later (Подготовить запрос сейчас, но отправить его позже) и нажмите на Next (Далее).
  • Введите имя сертификата: beer-brewers.com test site.
  • Выберите число бит; в нашем случае достаточно 1024.
  • Нажмите на кнопку Next (Далее).
  • Введите название организации: beer-brewers.com.
  • Отдел организации относится к тем организациям, в которых имеется несколько отделов или подразделений. В нашем случае просто укажите beer-brewers.com.
  • Нажмите на кнопку Next (Далее).
  • Общее имя является важным параметром, оно представляет собой имя DNS сайта. Поэтому для нашего сайта мы будем использовать имя test.beer-brewers.com.
  • Нажмите на кнопку Next (Далее).
  • Выберите Country/Region (Страна/регион), State/Province (Штат/область) и City/Locality (Город/Район). Сокращения здесь использовать не следует.
  • Нажмите на кнопку Next (Далее).
  • Укажите имя для запроса на сертификат. Запомните это имя и расположение; файл запроса понадобится нам в следующем разделе.
  • Нажмите на кнопку Next (Далее) дважды.
  • Нажмите на кнопку Finish (Готово).
  • После создания запроса на сертификат можно выпустить сам сертификат.

  • Откройте консоль MMC Certification Authority (Бюро сертификатов).
  • Выделите имя CA, после чего выберите Action\All Tasks\Submit New Request (Действие\Все задачи\Отправить новый запрос).
  • Перейдите к расположению запроса на сертификат. Если он расположен на компьютере, не доступном через сеть, придется скопировать запрос на гибкий диск и перенести его на этот компьютер.
  • Выделите файл и нажмите на кнопку Open (Открыть).
  • Запрос на сертификат теперь расположен в папке Pending Requests. Далее необходимо выпустить сертификат. Выделите запрос в папке Pending Requests, после чего выберите команду Action\All Tasks\Issue (Действие\Все задачи\Выпустить).
  • После этого сертификат будет перемещен в папку Issued Certificates (папка изданных сертификатов). Теперь сертификат можно экспортировать для отправки на веб-сервер. Выделите сертификат в папке Issued Certificates и выполните команду Action\All Tasks\Export Binary Data (Действие\Все задачи\Экспорт двоичных данных).
  • Выберите экспорт Binary Certificate (Двоичный сертификат) и сохраните двоичные данные в файле.
  • Нажмите на кнопку OK.
  • Выберите имя для данного сертификата. Запомните имя и расположение; этот файл понадобится в следующем разделе. Рекомендуется использовать расширение .cer.
  • Теперь можно вернуться в IIS и обработать запрос для использования.

  • В консоли MMC запустите мастер сертификатов веб-сервера (Web Server Certificate Wizard).
  • Нажмите на кнопку Next (Далее).
  • Выберите обработку запроса в ожидании, после чего нажмите на кнопку Next (Далее).
  • Выберите файл сертификата, после чего нажмите на кнопку Next (Далее).
  • Выберите порт SSL, используемый для данного сертификата. Значение по умолчанию 443 нам подойдет. Нажмите на кнопку Next (Далее).
  • Нажмите на Next (Далее), после чего нажмите на кнопку Finish (Готово).
  • Теперь у нас есть полностью установленный сертификат тестового сайта, и его можно использовать при тестировании кода. По окончании работы не забудьте удалить как файл запроса, так и экспортированный файл сертификата. Заполучив эти файлы, кто-то сможет осуществить несанкционированный доступ к сертификату.

    Получение сертификата для функционирующего сайта

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

    Процесс получения сертификата функционирующего сайта аналогичен случаю с тестовым сайтом, за исключением того, что коммерческий сертификат запрашивается у коммерческого CA, и отправляется файл запроса.

  • Запросите сертификат в консоли IIS MMC.
  • Откройте сайт коммерческого бюро сертификатов и запросите сертификат.
  • Отправьте в онлайн-бюро файл запроса, сгенерированный в IIS.
  • Обработайте запрос посредством установки файла ответа CA.
  • Каждое коммерческое бюро сертификатов имеет свой процесс получения сертификата. Важно помнить, что информация запроса на сертификат должна соответствовать информации, используемой в запрашивающей организации. Для больших компаний большое значение имеет номер D-U-N-S. В нашем случае не идет речь о корпорации, поэтому идентификация рассматриваемой компании осуществляется отправкой письма от президента клуба на официальном бланке компании. В остальном же для установки сертификата необходимо выполнить такие же шаги, как и для тестового сайта.

    Примечание. Обратитесь к лекции 10 курса "Администрирование web-серверов в IIS" для получения дополнительной информации, связанной с сертификатами.

    Настройка безопасности веб-сайта

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

    Создание учетной записи пользователя

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

    Создание группы

  • Откройте консоль MMC Computer Management (Управление компьютером).
  • Выделите в пункте Local Users and Groups (Локальные пользователи и группы) запись Groups (Группы).
  • Выберите команду Action\New Group (Действие\Создать группу).
  • Введите имя группы: BeerBrewers Newsletter Group.
  • Нажмите на кнопку Create (Создать).
  • Создание пользователей

  • В консоли MMC выделите в пункте Local Users and Groups (Локальные пользователи и группы) запись Users (Пользователи).
  • Выберите команду Action\New User (Действие\Создать пользователя).
  • Введите имя пользователя и пароль нового пользователя.
  • Отключите опцию User Must Change Password At Next Logon (Пользователь должен изменить пароль при следующем входе).
  • Нажмите на кнопку Create (Создать).
  • Добавление пользователя в группу

  • В консоли MMC откройте запись Groups (Группы) в пункте Local Users and Groups (Локальные пользователи и группы).
  • Дважды щелкните на группе BeerBrewers Newsletter Group.
  • Нажмите на кнопку Add (Добавить).
  • Выберите учетную запись пользователя, которую следует добавить в данную группу.
  • Нажмите на кнопку OK два раза.
  • Установка разрешений NTFS

    После создания группы ей нужно присвоить права файловой системы. До этого мы присвоили права анонимной группе; теперь настало время добавить в список группу сайта BeerBrewers. Группу следует связывать только с тем файлом (файлами), который должен быть защищен. В данном случае речь идет о файле newsletter.htm.

  • В Windows Explorer (Проводник Windows) найдите файл newsletter.htm.
  • Щелкните на файле правой кнопкой мыши и выберите Properties (Свойства).
  • Откройте вкладку Security (Безопасность).
  • Нажмите на кнопку Add (Добавить).
  • Найдите группу BeerBrewers Newsletter Group.
  • Нажмите на OK.
  • Наделите группу BeerBrewers Newsletter Group правами чтения и выполнения файла.
  • Нажмите на OK.
  • Настройка параметров аутентификации

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

  • Откройте консоль MMC IIS и найдите файл newsletter.htm.
  • Щелкните на файле правой кнопкой мыши и выберите Proeprties (Свойства).
  • Откройте вкладку File Security (Безопасность файлов).
  • Нажмите на кнопку Edit (Изменить) в области Authentication And Access Control (Аутентификация и контроль доступа).
  • Отключите опцию Enable Anonymous Access (Включить анонимный доступ).
  • Для сайта будет использоваться только базовая аутентификация, поэтому следует отметить опцию Basic Authentication (Базовая аутентификация) и отключить опцию Integrated Windows Authentication (Интегрированная аутентификация Windows).
  • Нажмите на OK один раз; вкладка File Security (Безопасность файлов) останется открытой.
  • Стоп!

    Читатель: Минуточку, разве базовая аутентификация рекомендуется к использованию, ведь в процессе ее работы пароль передается открытым текстом?

    Автор: Как правило, да. Но у нас есть сертификат! Весь трафик, связанный с данной страницей, будет зашифрованным.

    Читатель: Хорошо, у нас есть сертификат, но как заставить всех его использовать?

    Автор: Об этом рассказывается ниже.

    Принудительное использование SSL для обхода передачи паролей в открытом виде через интернет реализуется следующим образом.

  • Нажмите на кнопку Edit (Изменить) в области Secure Communications (Безопасные соединения).
  • Включите опцию Require Secure Channel (SSL).
  • При желании затребуйте 128-битное шифрование, однако в этом случае браузеры, в которых не установлена поддержка 128-битного шифрования, не смогут осуществлять доступ к сайту.
  • Нажмите на OK.два раза.
  • Теперь рассматриваемый файл защищен паролем, причем пароль также защищен.

    Тестирование кода

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

  • Проверено правильное функционирование каждой страницы?
  • Все ссылки сайта функционируют?
  • Присутствуют поврежденные или ненужные ссылки?
  • Установлен и работает ли DSN?
  • Генерируется сообщение об ошибке при незаполнении полей?
  • Является конфигурация безопасности излишней, недостаточной или подходящей?
  • Правильно функционирует SSL?
  • Присутствуют на данном компьютере двоичные файлы сертификата и запроса?
  • Правильно настроены разрешения файловой системы?
  • Возможно вызвать сбой в системе посредством ввода некорректных данных?
  • Примечание. Для нашего веб-сайта не предусмотрена проверка ошибок для полей, поэтому в них можно вводить некорректные данные. В реальной же ситуации рекомендуется реализовывать проверку полей формы.

    Перенос сайта в среду функционирования

    После всестороннего тестирования кода и его проверки согласно плану тестирования, самое время запустить код в работу. Важно протестировать в среде тестирования все возможные изменения, которые могут произойти в будущем, перед переводом кода в состояние функционирования. Таким образом, мы получили полнофункциональный веб-сайт!

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

    Вернуться к учебному плану