ASP.NET Kärnsäkerhetsavsnitt
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 säkerhetsämnen:
- 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 identitetstjänster från tredje part 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 sedan jämförs med de som lagras i ett operativsystem, en databas, en app eller en resurs. Om de matchar kan användarna autentiseras och sedan utföra åtgärder som de är auktoriserade för under en auktorisering process. Auktoriseringen refererar till den process som avgör vad en användare får göra.
Ett annat sätt att tänka på autentisering är att betrakta det som ett sätt att ange ett utrymme, till exempel en server, databas, app eller resurs, medan auktorisering är vilka åtgärder som användaren kan utföra till vilka objekt i det utrymmet (server, databas eller app).
Vanliga sårbarheter i programvara
ASP.NET Core och EF 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:
- Cross-Site Scripting (XSS)-attacker
- 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 bevilja autentiseringsuppgifter för resursägares lösenord eftersom det:
- Exponerar användarens lösenord för klienten.
- Är en betydande säkerhetsrisk.
- Bör endast användas 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 vanligtvis i oformaterad, okrypterad text. Om datorn eller processen komprometteras kan miljövariabler nås av 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
- IETF OAuth 2.0 Säkerhets bästa aktuella praxis
Information om andra molnleverantörer finns i:
- AWS (Amazon Web Services): AWS Key Management Service (KMS)
- Översikt över Google Cloud Key Management Service
Ytterligare resurser
ASP.NET Core