Учебники

ASP.NET — Безопасность

Реализация безопасности на сайте имеет следующие аспекты:

  • Аутентификация : это процесс обеспечения идентичности и подлинности пользователя. ASP.NET допускает четыре типа аутентификации:

    • Проверка подлинности Windows
    • Аутентификация по формам
    • Паспортная аутентификация
    • Пользовательская аутентификация
  • Авторизация . Это процесс определения и назначения определенных ролей конкретным пользователям.

  • Конфиденциальность : включает в себя шифрование канала между клиентским браузером и веб-сервером.

  • Целостность : подразумевает поддержание целостности данных. Например, внедрение цифровой подписи.

Аутентификация : это процесс обеспечения идентичности и подлинности пользователя. ASP.NET допускает четыре типа аутентификации:

Авторизация . Это процесс определения и назначения определенных ролей конкретным пользователям.

Конфиденциальность : включает в себя шифрование канала между клиентским браузером и веб-сервером.

Целостность : подразумевает поддержание целостности данных. Например, внедрение цифровой подписи.

Аутентификация на основе форм

Традиционно аутентификация на основе форм включает в себя редактирование файла web.config и добавление страницы входа с соответствующим кодом аутентификации.

Файл web.config может быть отредактирован и на нем написаны следующие коды:

<configuration>

<system.web>
   <authentication mode="Forms">
      <forms loginUrl ="login.aspx"/>
   </authentication>
   
   <authorization>
      <deny users="?"/>
   </authorization>
</system.web>
...
...
</configuration>

Страница login.aspx, упомянутая в приведенном выше фрагменте кода, может содержать следующий код в файле с именами пользователей и паролями для аутентификации.

protected bool authenticate(String uname, String pass)
{
   if(uname == "Tom")
   {
      if(pass == "tom123")
         return true;
   }
   
   if(uname == "Dick")
   {
      if(pass == "dick123")
         return true;
   }
   
   if(uname == "Harry")
   {
      if(pass == "har123")
         return true;
   }
   
   return false;
}

public void OnLogin(Object src, EventArgs e)
{
   if (authenticate(txtuser.Text, txtpwd.Text))
   {
      FormsAuthentication.RedirectFromLoginPage(txtuser.Text, chkrem.Checked);
   }
   else
   {
      Response.Write("Invalid user name or password");
   }
}

Обратите внимание, что класс FormsAuthentication отвечает за процесс аутентификации.

Тем не менее, Visual Studio позволяет легко создавать, аутентифицировать и авторизовывать пользователей без написания кода с помощью инструмента администрирования веб-сайта. Этот инструмент позволяет создавать пользователей и роли.

Помимо этого, ASP.NET поставляется с готовым набором элементов управления входом, в котором есть элементы управления, выполняющие все задания за вас.

Внедрение безопасности на основе форм

Чтобы настроить аутентификацию на основе форм, вам необходимо следующее:

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

Чтобы создать пользователей, выполните следующие действия:

Шаг (1) : Выберите Веб-сайт -> Конфигурация ASP.NET, чтобы открыть Инструмент администрирования веб-приложения.

Шаг (2) : Нажмите на вкладку Безопасность.

Вкладка "Безопасность"

Шаг (3) : Выберите тип аутентификации «Аутентификация на основе форм», установив переключатель «Из Интернета».

Тип аутентификации

Шаг (4) : Нажмите на ссылку «Создать пользователей», чтобы создать некоторых пользователей. Если вы уже создали роли, вы можете назначить роли пользователю прямо на этом этапе.

Ссылка «Создать пользователя»

Шаг (5) : Создайте веб-сайт и добавьте следующие страницы:

  • Welcome.aspx
  • Login.aspx
  • CreateAccount.aspx
  • PasswordRecovery.aspx
  • ChangePassword.aspx

Шаг (6) : Поместите элемент управления LoginStatus в Welcome.aspx из раздела входа в систему панели инструментов. У него есть два шаблона: LoggedIn и LoggedOut.

В шаблоне LoggedOut есть ссылка для входа в систему, а в шаблоне LoggedIn — ссылка для выхода из системы управления. Вы можете изменить свойства входа и выхода из системы для элемента управления в окне «Свойства».

Контроль статуса входа

Шаг (7) . Поместите элемент управления LoginView из панели инструментов под элементом управления LoginStatus. Здесь вы можете поместить текст и другие элементы управления (гиперссылки, кнопки и т. Д.), Которые отображаются в зависимости от того, вошел ли пользователь в систему или нет.

Этот элемент управления имеет два шаблона представления: анонимный шаблон и шаблон LoggedIn. Выберите каждый вид и напишите текст для пользователей, которые будут отображаться для каждого шаблона. Текст должен быть размещен в области, отмеченной красным.

Контроль входа

Шаг (8) : пользователи для приложения создаются разработчиком. Вы можете разрешить посетителю создать учетную запись пользователя. Для этого добавьте ссылку под элементом управления LoginView, которая должна ссылаться на страницу CreateAccount.aspx.

Шаг (9) : Поместите элемент управления CreateUserWizard на страницу создания учетной записи. Установите для свойства ContinueDestinationPageUrl этого элемента управления значение Welcome.aspx.

Элемент управления CreateUserWizard

Шаг (10) : Создайте страницу входа. Поместите элемент управления Login на странице. Элемент управления LoginStatus автоматически связывается с Login.aspx. Чтобы изменить это значение по умолчанию, внесите следующие изменения в файл web.config.

Например, если вы хотите назвать свой журнал на странице как signup.aspx, добавьте следующие строки в раздел <authentication> файла web.config:

<configuration>
   <system.web>
      <authentication mode="Forms">
         <forms loginUrl ="signup.aspx" defaultUrl = “Welcome.aspx† />
      </authentication>
   </system.web>
</configuration>

Шаг (11) : пользователи часто забывают пароли. Элемент управления PasswordRecovery помогает пользователю получить доступ к учетной записи. Выберите элемент управления Login. Откройте его смарт-тег и нажмите «Преобразовать в шаблон».

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

Контроль восстановления пароля

Шаг (12) : Поместите элемент управления PasswordRecovery на страницу восстановления пароля. Для этого элемента управления требуется почтовый сервер для отправки паролей пользователям.

PasswordRecovery control2

Шаг (13) : Создайте ссылку на страницу ChangePassword.aspx в шаблоне LoggedIn элемента управления LoginView в Welcome.aspx.

Элемент управления ChangePassword

Шаг (14) : Поместите элемент управления ChangePassword на страницу смены пароля. Этот элемент управления также имеет два представления.

ChangePassword control2

Теперь запустите приложение и наблюдайте за различными операциями безопасности.

Чтобы создать роли, вернитесь в Инструменты администрирования веб-приложений и нажмите вкладку Безопасность. Нажмите «Создать роли» и создайте несколько ролей для приложения.

Администрирование веб-приложений

Нажмите на ссылку «Управление пользователями» и назначьте роли пользователям.

Управление пользователями

Аутентификация IIS: SSL

Secure Socket Layer или SSL — это протокол, используемый для обеспечения безопасного соединения. При включенном SSL браузер шифрует все данные, отправляемые на сервер, и дешифрует все данные, поступающие с сервера. В то же время сервер шифрует и дешифрует все данные в браузер и из него.

URL для безопасного соединения начинается с HTTPS вместо HTTP. Небольшой замок отображается браузером с использованием безопасного соединения. Когда браузер делает первоначальную попытку установить связь с сервером через безопасное соединение с использованием SSL, сервер аутентифицирует себя, отправляя свой цифровой сертификат.

Чтобы использовать SSL, вам нужно купить цифровой безопасный сертификат у доверенного центра сертификации (CA) и установить его на веб-сервере. Следующее — некоторые из доверенных и предполагаемых центров сертификации:

  • www.verisign.com
  • www.geotrust.com
  • www.thawte.com

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