Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
ASP.NET Core stelt ontwikkelaars in staat om beveiliging te configureren en te beheren. De volgende lijst bevat koppelingen naar artikelen over het werken met beveiliging in ASP.NET Core:
- verificatie
- Autorisatie
- gegevensbescherming
- HTTPS-handhaving
- veilige opslag van app-geheimen in ontwikkeling
- XSRF/CSRF-preventie
- CORS (Cross-Origin Resource Sharing) - Ook wel 'gedeeld gebruik van bronnen tussen verschillende bronnen' genoemd
- XSS-aanvallen (Cross-Site Scripting)
Met deze beveiligingsfuncties kunt u robuuste en veilige ASP.NET Core-apps bouwen.
Zie voor Blazor beveiligingsdekking, die de richtlijnen in dit knooppunt aanvult of vervangt, ASP.NET Core Blazor verificatie en autorisatie en de andere artikelen in Blazor's knooppunt Beveiliging en Identity.
ASP.NET Kernbeveiligingsfuncties
ASP.NET Core biedt veel hulpprogramma's en bibliotheken voor het beveiligen van ASP.NET Core apps, zoals ingebouwde id-providers en niet-Microsoft identiteitsservices zoals Facebook, Twitter en LinkedIn. ASP.NET Core biedt verschillende benaderingen voor het opslaan van app-geheimen.
Verificatie versus autorisatie
Verificatie is een proces waarbij een gebruiker referenties levert die worden vergeleken met referenties die zijn opgeslagen in een besturingssysteem, database, app of resource. Wanneer de twee combinaties van inloggegevens overeenkomen, wordt de gebruiker met succes geauthenticeerd. Ze kunnen vervolgens acties uitvoeren waarvoor ze zijn geautoriseerd. Het autorisatieproces bepaalt welke acties de gebruiker mag uitvoeren.
Een andere manier om aan verificatie te denken, is door deze te beschouwen als een manier om een ruimte in te voeren , waarbij de ruimte een server, database, app of resource is. Autorisatie definieert welke acties de gebruiker kan uitvoeren op welke objecten in die ruimte (server, database of app).
Veelvoorkomende beveiligingsproblemen in software
ASP.NET Core en Entity Framework functies bevatten waarmee u uw apps kunt beveiligen en beveiligingsschendingen kunt voorkomen. De volgende lijst met koppelingen leidt u naar documentatie over technieken voor gedetailleerde informatie om de meest voorkomende beveiligingsproblemen in web-apps te voorkomen:
- XSS-aanvallen (Cross-Site Scripting)
- SQL-query's uitvoeren op > SQL-injectieaanvallen
- aanvallen van cross-site request forgery (XSRF/CSRF)
- Open-redirect aanvallen
Er zijn meer beveiligingsproblemen waar u rekening mee moet houden. Zie de andere artikelen in de sectie Beveiliging en Identity van de inhoudsopgave voor meer informatie.
Verificatiestromen beveiligen
U wordt aangeraden de veiligste verificatieoptie te gebruiken. Voor Azure-services is de veiligste authenticatie beheerde identiteiten.
Vermijd het gebruik van de Resource Owner Password Credentials (ROPG)-grant:
- Het stelt het wachtwoord van de gebruiker beschikbaar voor de client.
- Het is een aanzienlijk beveiligingsrisico.
- Gebruik deze alleen als andere verificatiestromen niet mogelijk zijn.
Beheerde identiteiten zijn een veilige manier om te verifiëren bij services zonder referenties op te slaan in code, omgevingsvariabelen of configuratiebestanden. Beheerde identiteiten zijn beschikbaar voor Azure-services en kunnen worden gebruikt met Azure SQL, Azure Storage en andere Azure-services:
- Beheerde Identiteiten in Microsoft Entra voor Azure SQL
- beheerde identiteiten voor App Service en Azure Functions
- beveiligde authenticatiestromen
Wanneer de app wordt geïmplementeerd op een testserver, kan een omgevingsvariabele worden gebruikt om de verbindingsreeks in te stellen op een testdatabaseserver. Zie Configurationvoor meer informatie. Omgevingsvariabelen worden meestal opgeslagen in niet-versleutelde tekst. Als de machine of het proces is aangetast, zijn omgevingsvariabelen mogelijk toegankelijk voor niet-vertrouwde partijen. We raden u af om omgevingsvariabelen te gebruiken om een productieverbindingsreeks op te slaan, omdat dit niet de veiligste benadering is.
Richtlijnen voor configuratiegegevens:
- Sla nooit wachtwoorden of andere gevoelige gegevens op in configuratieprovidercode of in configuratiebestanden met tekst zonder opmaak. Het hulpprogramma Secret Manager kan worden gebruikt om geheimen voor ontwikkelingsdoeleinden op te slaan.
- Gebruik geen productiegeheimen in ontwikkel- of testomgevingen.
- Geef geheimen buiten het project op, zodat ze niet per ongeluk kunnen worden doorgevoerd in een opslagplaats met broncode.
Zie voor meer informatie:
- Aanbevelingen voor beste praktijken voor beheerde identiteiten
- Aanmelden bij uw applicatie om toegang te krijgen tot bronmateriaal zonder inloggegevens in uw code te verwerken
- Azure-services die beheerde identiteiten kunnen gebruiken voor toegang tot andere services
- Best practice voor beveiliging van IETF OAuth 2.0 (sectie 2.4. Wachtwoordreferenties voor resource-eigenaar verlenen)
Zie voor meer informatie over andere cloudproviders:
- AWS (Amazon Web Services): AWS Key Management Service (KMS)
- Overzicht van Google Cloud Key Management Service
Patronen voor bedrijfsweb-apps
Zie Enterprise-web-app-patronenvoor hulp bij het maken van een betrouwbare, veilige, uitvoerbare, testbare en schaalbare ASP.NET Core-app. Er is een volledige voorbeeldweb-app van productiekwaliteit beschikbaar waarmee de patronen worden geïmplementeerd.