Авторизация и защита веб-ресурсов в ASP.NET

Авторизация и защита веб-ресурсов в ASP.NET

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

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

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

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

Например, интернет-магазин позволит каждому пользователю просматривать витрину и пользоваться корзиной заказов.

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

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

Давайте рассмотрим, как авторизация организована в популярных организационных рамкахASP.NET.

Что такое авторизация?

Как уже говорилось, вы можете идентифицировать их, создав уникальные учетные записи для пользователей. Механизмы"Признание.'Зарегистрированные посетители сайта называются авторизованными личностями'.

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

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

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

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

Аутентификация, с другой стороны, использует уникальный идентификатор пользователя для определения того, какие действия пользователи могут выполнять на сайте (например, просматривать страницы, изменять данные и т.д.).

Использование аутентификации и разрешений для защиты веб-сайта, созданного на основеASP.NET — Это основная тема данной статьи.

Управление доступом к группам и ролям

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

ЧИТАТЬ ЕЩЁ:  5 ответов на вопросы, связанные с типами интерфейсов

Для решения этой проблемы пользователи с одинаковыми правами или потребностями концентрируются в группы. Индивидуальные права также могут быть явно или неявно сгруппированы в SO — так называемые роли. Роли могут быть назначены отдельным пользователям или группам. В некоторых системах "" и ""Клуб." — это синоним.

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

Чтобы отразить изменения в политике безопасности сайта для всех пользователей сегодня и в будущем, администратор просто настраивает свойства команды.

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

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

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

Эффективная практика заключается в разделении пользователей на группы в зависимости от типа деятельности на сайте. Например, в нашем блоге могут быть следующие группы пользователей:"Писатели», «Издательство», «Координаторы"и т.д.

Другой подход — распределение групп"Создание», «Обработка изделий", " " и т.д. Этот подход обеспечивает большую гибкость, но требует поддержания большего количества различных групп на сайте.

Страхование страниц с помощью инструментов ASP.NET

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

При защите веб-сайтаASP.NET используется для разделения доступа тремя способами.

Система адресной маршрутизации; веб-формы (Файлы и папки.Маршрутизация адресов — Веб-формы (файлы и папки) — Структура.

Защита сайта для веб-форм.

Как веб-формы, так и маршрутизацияASP.NET Используется для обеспечения доступа кweb.config.. Базовая конфигурация для защиты доступа к ресурсам сайта выглядит следующим образом.

< конфигурация>,.
   < location path=" adminhome.aspx" >,.
      < system.web>,.
         < авторизация >, < system.web>, < system.web>, < system.web>, < system.web>
           
           < deny users = "*"/>,.
         </authorization>,.
      < /ysystem.web>,.
   </location>,.
</configuration>,.

-элементМестонахождение. Определяет маршрут к защищенному ресурсу: папке, странице или элементу маршрутизации. В этом примере установите страницуadminhome.aspx. Указав путь, можно защитить содержимое целой папки. Если атрибут пути отсутствует, параметры безопасности применяются к папке, для которой существует атрибут пути.web.config.вместе со всеми его вложенными папками.

КлючиАвторизация. элемент определяет, кто может или не может получить доступ к защищенному ресурсу. Разрешения проверяются по очереди, пока не будет найдено совпадение, начиная с первого разрешения. Вложенные элементыРазрешения. компонент разрешает и запрещает доступ к ресурсу для определенного пользователя или роли.

ЧИТАТЬ ЕЩЁ:  7 шагов оптимизации после запуска нового сайта

В этом примере сначала проверяется правило <разрешить роль администратора&>. Если пользователь является администратором, доступ разрешен и контроль прекращается в этой точке.

В противном случае правило проверяется снова, пока: <deny users="*" /> Это запрещает доступ всех пользователей к ресурсу. Таким образом, в данном примере доступ к файлу предоставляется только администраторам. Любой другой доступ запрещен.

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

Символ "" используется для анонимных (которые еще не были зарегистрированы.) пользователь. Можно перечислить несколько групп или отдельных пользователей через запятую. Пользователи и роли могут быть смешаны в правиле. Например.

<allow roles="siteadmin,editors"users="bob">,

Защита участка MVC

Разработка веб-сайта по методологии фокусируется на контроллерах и их действиях, а не на файлах и папках. Защита изменяется соответствующим образом. По умолчанию, как и в случае с веб-формами, все действия для всех контроллеров доступны всем пользователям. Можно использовать тех же пользователей и роли, но файлweb.config. Их больше не существует.

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

[Authorize(Roles = "siteadmin")].
public class AdminController : Controller
<
...

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

[Authorize(Roles = "siteadmin")].
public ActionResult AdminView())
<
...

[ если пользователь или роль не указаны вавторизация], доступ предоставляется всем зарегистрированным пользователям.

В ASP.NET 4 Характеристики [Разрешить анонимность], анонимным пользователям может быть разрешен доступ к отдельным действиям защищенных контроллеров.

Управление контентом на основе ролей

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

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

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

Код, выполняемый сервером на многоролевой странице, должен всегда контролировать права пользователя и основывать свои действия на результатах этой проверки.

ЧИТАТЬ ЕЩЁ:  Бот – что такое. Как искусственный интеллект заменяет работу людей

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

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

Всегда проверяйте, насколько безопасен код для обработки вопросов. Например, в интернет-магазине есть запрос на удаление заказа.

updateOrder.aspx? order = 33 & action = delete

Теперь представьте, что хакер удаляет все заказы путем перебора.Заказы.. Управляет ли заказами пользователя соответствующий оператор?

В другом случае, отсутствие контроля над

updateOrder.aspx? order = 33 & action = refund

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

Аспекты безопасности пользовательских сессий

Защита самих аутентификационных данных — это отдельный вопрос безопасности, хотя он тесно связан с доступом к ресурсам и безопасностью кода. Во-первых, на безопасность механизма аутентификации влияет продолжительность сессии. ВASP.NET Это указано вweb.config. следующим образом:.

< forms loginurl = ",.~/auth/logon.aspx" timeout = " 30 " SlidingExpiration = " true " />,.

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

Необходимо также учитывать возможность кражи сессии. Большинство онлайн-боксов хранят идентификаторы сеансов в небольших текстовых данных, называемых BiscuitПеченье.(cookie) в браузер пользователя.

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

Существуют такие инструменты, какОгненный хищник. — Расширения для браузеровFirefox. — Расширения браузера, которые могут раскрыть обработку или фальсификацию аутентификационных файлов cookie.

Единственным способом защиты от перехвата информации с веб-сайтов на время их работы является использование шифрования. Вы должны обеспечить перенаправление пользователя в этот момент, чтобы cookie передавался только через зашифрованное и безопасное соединение.

РамкиASP.NET Вы можете усилить защиту своего сайта, настроив следующие функции в форме входа в системуrequiressl =»true» Для обеспечения дополнительной безопасности рекомендуется также наклеивать ярлыки на параметры сайта.

Заключение.

Использование одного и того же сайта посетителями с различными потребностями и уровнем ответственности требует применения различных методов предотвращения несанкционированного доступа к данным и функциям. Можно идентифицировать пользователей и применить к сайту правильные настройки безопасности.

Главное — обеспечить, чтобы только соответствующие пользователи могли использовать критически важные функции сайта.

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

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

Сочетание этих мер может создать безопасный веб-сайт.

Оцените статью