Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Platforma ASP.NET Core umożliwia deweloperom konfigurowanie zabezpieczeń i zarządzanie nimi. Poniższa lista zawiera linki do artykułów dotyczących pracy z zabezpieczeniami w ASP.NET Core:
- Uwierzytelnianie
- Autoryzacja
- Ochrona danych
- Wymuszanie protokołu HTTPS
- Bezpieczne przechowywanie sekretów aplikacji w trakcie tworzenia
- Zapobieganie atakom XSRF/CSRF
- Cross-Origin Resource Sharing (CORS)
- Ataki Cross-Site Scripting (XSS)
Te funkcje zabezpieczeń umożliwiają tworzenie niezawodnych i bezpiecznych aplikacji platformy ASP.NET Core.
Aby uzyskać Blazor omówienie zabezpieczeń, które uzupełnia lub zastępuje wskazówki zawarte w tym węźle, zobacz ASP.NET Core Blazor uwierzytelnianie i autoryzacja oraz inne artykuły w węźle BlazorZabezpieczenia i Identity.
Funkcje zabezpieczeń platformy ASP.NET Core
ASP.NET Core udostępnia wiele narzędzi i bibliotek do zabezpieczania aplikacji ASP.NET Core, takich jak wbudowani dostawcy tożsamości i usługi tożsamości innych niż Microsoft, takie jak Facebook, Twitter i LinkedIn. Platforma ASP.NET Core udostępnia kilka podejść do przechowywania sekretów aplikacji.
Uwierzytelnianie a autoryzacja
Uwierzytelnianie to proces, w którym użytkownik udostępnia poświadczenia, które są porównywane z poświadczeniami przechowywanymi w systemie operacyjnym, bazie danych, aplikacji lub zasobie. Gdy dwa zestawy poświadczeń są zgodne, użytkownik uwierzytelnia się pomyślnie. Następnie mogą wykonywać akcje, dla których są autoryzowane. Proces autoryzacji określa akcje, które użytkownik może wykonać.
Innym sposobem myślenia o uwierzytelnianiu jest rozważenie go jako sposobu wejścia do przestrzeni, gdzie tą przestrzenią jest serwer, baza danych, aplikacja lub zasób. Autoryzacja definiuje, jakie akcje użytkownik może wykonać na których obiektach wewnątrz tej przestrzeni (serwer, baza danych lub aplikacja).
Typowe luki w zabezpieczeniach oprogramowania
ASP.NET Core i Entity Framework zawierają funkcje, które ułatwiają zabezpieczanie aplikacji i zapobieganie naruszeniom zabezpieczeń. Poniższa lista linków prowadzi do dokumentacji zawierającej szczegółowe informacje o technikach unikania najczęstszych luk w zabezpieczeniach w aplikacjach internetowych:
- Ataki z użyciem skryptów między witrynami (XSS)
- Zapytania SQL > ataki typu SQL injection
- Ataki z fałszowaniem żądań międzywitrynowych (XSRF/CSRF)
- Ataki na otwarte przekierowywanie
- Luki w zabezpieczeniach łańcucha dostaw oprogramowania (najlepsze rozwiązania w zakresie zabezpieczeń NuGet)
Istnieje więcej luk w zabezpieczeniach, o których należy wiedzieć. Aby uzyskać więcej informacji, zobacz inne artykuły w sekcji Zabezpieczenia Identity spisu treści.
Bezpieczne procesy uwierzytelniania
Zalecamy użycie najbezpieczniejszej opcji uwierzytelniania. W przypadku usług platformy Azure najbezpieczniejszą metodą uwierzytelniania są managed identities.
Unikaj używania typu nadania Resource Owner Password Credentials (ROPG):
- Uwidacznia ono hasło użytkownika po stronie klienta.
- Jest to znaczące zagrożenie bezpieczeństwa.
- Używaj go tylko wtedy, gdy inne przepływy uwierzytelniania nie są możliwe.
Tożsamości zarządzane to bezpieczny sposób uwierzytelniania w usługach bez konieczności przechowywania poświadczeń w kodzie, zmiennych środowiskowych lub plikach konfiguracji. Tożsamości zarządzane są dostępne dla usług platformy Azure i mogą być używane z usługami Azure SQL, Azure Storage i innymi usługami platformy Azure:
- Tożsamości zarządzane w usłudze Microsoft Entra dla usługi Azure SQL
- Tożsamości zarządzane dla usług App Service i Azure Functions
- Bezpieczne przepływy uwierzytelniania
Po wdrożeniu aplikacji na testowy serwer można użyć zmiennej środowiskowej, aby ustawić ciąg połączenia z testowym serwerem bazy danych. Aby uzyskać więcej informacji, zobacz Konfiguracja. Zmienne środowiskowe są często przechowywane w postaci zwykłego, niezaszyfrowanego tekstu. W przypadku naruszenia zabezpieczeń maszyny lub procesu zmienne środowiskowe mogą być dostępne dla niezaufanych stron. Odradzamy używanie zmiennych środowiskowych do przechowywania produkcyjnego ciągu połączenia, ponieważ nie jest to najbezpieczniejsze podejście.
Wytyczne dotyczące danych konfiguracji:
- Nigdy nie przechowuj haseł ani innych poufnych danych w kodzie dostawcy konfiguracji ani w plikach konfiguracji w postaci zwykłego tekstu. Narzędzie Secret Manager może służyć do przechowywania sekretów w środowisku tworzenia.
- Nie używaj sekretów produkcyjnych w środowiskach tworzenia ani testowania.
- Określaj sekrety poza projektem, aby nie można było ich przypadkowo dodać do repozytorium kodu źródłowego.
Aby uzyskać więcej informacji, zobacz:
- Zalecenia najlepszych praktyk dotyczące tożsamości zarządzanej
- Łączenie aplikacji z zasobami bez obsługi poświadczeń w kodzie
- Usługi platformy Azure, które mogą uzyskiwać dostęp do innych usług przy użyciu tożsamości zarządzanych
- IETF OAuth 2.0 Aktualne najlepsze praktyki w zakresie zabezpieczeń (sekcja 2.4. Grant poświadczeń hasła właściciela zasobu)
Aby uzyskać informacje na temat innych dostawców usług w chmurze, zobacz:
- AWS (Amazon Web Services): AWS Key Management Service (KMS)
- Omówienie usługi Google Cloud Key Management Service
Wzorce aplikacji internetowej dla przedsiębiorstw
Aby uzyskać wskazówki dotyczące tworzenia niezawodnej, bezpiecznej, wydajnej, testowalnej i skalowalnej aplikacji ASP.NET Core, zobacz wzorce aplikacji internetowych Enterprise. Dostępna jest kompletna przykładowa aplikacja internetowa jakości produkcyjnej, która implementuje wzorce.