Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
ASP.NET Core gör det möjligt för utvecklare att konfigurera och hantera säkerhet. Följande lista innehåller länkar till artiklar om hur du arbetar med säkerhet i ASP.NET Core:
- autentisering
- Auktorisering
- Dataskydd
- HTTPS-verkställande
- Säker lagring av apphemligheter under utveckling
- XSRF/CSRF-förebyggandet
- Resursdelning mellan ursprung (Cross Origin Resource Sharing, CORS)
- System för Cross-Site Scripting (XSS) attacker
Med de här säkerhetsfunktionerna kan du skapa robusta och säkra ASP.NET Core-appar.
För säkerhetstäckning i Blazor, som kompletterar eller ersätter vägledningen i denna nod, se ASP.NET Core Blazor-autentisering och -auktorisering samt de andra artiklarna i Blazor:s säkerhet och Identity nod.
ASP.NET Core-säkerhetsfunktioner
ASP.NET Core innehåller många verktyg och bibliotek för att skydda ASP.NET Core appar, till exempel inbyggda identitetsprovidrar och icke-Microsoft identitetstjänster som Facebook, Twitter och LinkedIn. ASP.NET Core har flera metoder för att lagra apphemligheter.
Autentisering jämfört med auktorisering
Autentisering är en process där en användare tillhandahåller autentiseringsuppgifter som jämförs med autentiseringsuppgifter som lagras i ett operativsystem, en databas, en app eller en resurs. När de två uppsättningarna med autentiseringsuppgifter matchar, autentiseras användaren. De kan sedan utföra åtgärder som de har behörighet för. Auktoriseringsprocessen avgör vilka åtgärder användaren får utföra.
Ett annat sätt att tänka på autentisering är att betrakta det som ett sätt att ange ett utrymme, där utrymmet är en server, databas, app eller resurs. Auktorisering definierar vilka åtgärder användaren kan utföra för vilka objekt i utrymmet (server, databas eller app).
Vanliga sårbarheter i programvara
ASP.NET Core och Entity Framework innehåller funktioner som hjälper dig att skydda dina appar och förhindra säkerhetsöverträdelser. Följande lista med länkar tar dig till dokumentation som beskriver tekniker för att undvika de vanligaste säkerhetsproblemen i webbappar:
- System för Cross-Site Scripting (XSS) attacker
- SQL-frågor > SQL-injektionsattacker
- Cross-Site Request Forgery (XSRF/CSRF) attacker (förfalskning av förfrågningar mellan webbplatser)
- Öppna omdirigeringsattacker
Det finns fler säkerhetsrisker som du bör känna till. Mer information finns i de andra artiklarna i avsnittet Säkerhet och Identity i innehållsförteckningen.
Skydda autentiseringsflöden
Vi rekommenderar att du använder det säkraste autentiseringsalternativet. För Azure-tjänster är den säkraste autentiseringen hanterade identiteter.
Undvik att använda ROPG-beviljandet (Resource Owner Password Credentials):
- Användarens lösenord exponeras för klienten.
- Det är en betydande säkerhetsrisk.
- Använd den bara när andra autentiseringsflöden inte är möjliga.
Hanterade identiteter är ett säkert sätt att autentisera till tjänster utan att behöva lagra autentiseringsuppgifter i kod, miljövariabler eller konfigurationsfiler. Hanterade identiteter är tillgängliga för Azure-tjänster och kan användas med Azure SQL, Azure Storage och andra Azure-tjänster:
- Hanterade identiteter i Microsoft Entra för Azure SQL
- Hanterade identiteter för App Service och Azure Functions
- Säkra autentiseringsflöden
När appen distribueras till en testserver kan en miljövariabel användas för att ange anslutningssträngen till en testdatabasserver. Mer information finns i Configuration. Miljövariabler lagras ofta i okrypterad text. Om datorn eller processen komprometteras kan miljövariabler vara tillgängliga för ej betrodda parter. Vi rekommenderar att du inte använder miljövariabler för att lagra en produktionsanslutningssträng eftersom det inte är den säkraste metoden.
Riktlinjer för konfigurationsdata:
- Lagra aldrig lösenord eller andra känsliga data i konfigurationsproviderns kod eller i konfigurationsfiler för oformaterad text. Verktyget Secret Manager kan användas för att lagra hemligheter under utveckling.
- Använd inte produktionshemligheter i utvecklings- eller testmiljöer.
- Ange hemligheter utanför projektet så att de inte av misstag kan checkas in på en källkodslagringsplats.
Mer information finns i:
- rekommendationer för bästa praxis för hanterad identitet
- Ansluta från ditt program till resurser utan att hantera autentiseringsuppgifter i din kod
- Azure-tjänster som kan använda hanterade identiteter för att få åtkomst till andra tjänster
- Bästa praxis för säkerhet i IETF OAuth 2.0 (avsnitt 2.4. Bevilja autentiseringsuppgifter för resursägares lösenord)
Information om andra molnleverantörer finns i:
- AWS (Amazon Web Services): AWS Key Management Service (KMS)
- Översikt över Google Cloud Key Management Service
Mönster för företagswebbappar
Vägledning om hur du skapar en tillförlitlig, säker, högpresterande, testbar och skalbar ASP.NET Core-app finns i Enterprise-webbappmönster. En komplett exempelwebbapp av produktionskvalitet som implementerar mönstren är tillgänglig.
Relaterat innehåll
ASP.NET Core