Материалы по безопасности в ASP.NET Core

ASP.NET Core позволяет разработчикам настраивать параметры безопасности и управлять ими. В следующем списке приведены ссылки на разделы по безопасности:

Эти функции обеспечения безопасности позволяют создавать надежные и защищенные приложения ASP.NET Core.

Сведения о Blazor охвате безопасности, который добавляет в этот узел или заменяет инструкции, см. в статье ASP.NET Проверка подлинности и авторизация CoreBlazor, а также другие статьи в Blazorразделе "Безопасность и Identity узел".

Функции безопасности в ASP.NET Core

ASP.NET Core предоставляет множество средств и библиотек для защиты приложений ASP.NET Core, таких как встроенные identity поставщики и сторонние identity службы, такие как Facebook, Twitter и LinkedIn. ASP.NET Core предоставляет несколько подходов к хранению секретов приложений.

Проверка подлинности и авторизация

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

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

Распространенные уязвимости в программном обеспечении

ASP.NET Core и EF содержат средства, помогающие защитить приложения и предотвратить возникновение нарушений безопасности. Далее приводится список ссылок на документацию с описанием методов, позволяющих устранять наиболее распространенные уязвимости в веб-приложениях:

Существует еще целый ряд уязвимостей, о которых следует знать. Дополнительные сведения см. в других статьях раздела Безопасность и Identity.

Безопасные потоки проверки подлинности

Рекомендуется использовать самый безопасный вариант проверки подлинности. Для служб Azure наиболее безопасная проверка подлинности — это управляемые удостоверения.

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

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

Управляемые удостоверения — это безопасный способ проверки подлинности в службах без необходимости хранить учетные данные в коде, переменных среды или файлах конфигурации. Управляемые удостоверения доступны для служб Azure и могут использоваться с SQL Azure, служба хранилища Azure и другими службами Azure:

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

Рекомендации по данным конфигурации:

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

Рекомендации по данным конфигурации:

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

Дополнительные сведения см. в разделе:

Дополнительные сведения о других поставщиках облачных служб см. в статье:

Дополнительные ресурсы