Condividi tramite


Argomenti sulla sicurezza di ASP.NET Core

ASP.NET Core consente agli sviluppatori di configurare e gestire la sicurezza. L'elenco seguente contiene i collegamenti ad argomenti relativi alla sicurezza:

Queste funzionalità di sicurezza consentono di compilare app ASP.NET Core affidabili e sicure.

Per Blazor la copertura della sicurezza, che aggiunge o sostituisce le linee guida in questo nodo, vedere ASP.NET'autenticazione e autorizzazione core Blazor e gli altri articoli nel Blazornodo Sicurezza e Identity nodo.

Funzionalità di sicurezza di ASP.NET Core

ASP.NET Core offre molti strumenti e librerie per proteggere le app core ASP.NET, ad esempio provider predefiniti identity e servizi di terze parti identity come Facebook, Twitter e LinkedIn. ASP.NET Core offre diversi approcci per archiviare i segreti delle app.

Confronto tra autenticazione e autorizzazione

L'autenticazione è un processo in cui un utente fornisce le credenziali che vengono quindi confrontate con quelle archiviate in un sistema operativo, in un database, in un'applicazione o in una risorsa. Se corrispondono, gli utenti vengono autenticati correttamente e quindi possono eseguire azioni per cui sono autorizzati, durante un processo di autorizzazione. L'autorizzazione è il processo che determina quali operazioni può eseguire un utente.

È possibile considerare l'autenticazione come un modo per entrare in uno spazio, ad esempio un server, un database, un'app o una risorsa, mentre l'autorizzazione definisce le azioni che l'utente può eseguire e su quali oggetti all'interno di tale spazio (server, database o app).

Vulnerabilità comuni nel software

ASP.NET Core ed Entity Framework contengono funzionalità che consentono di proteggere le app e impedire violazioni della sicurezza. L'elenco di collegamenti seguente offre documentazione in cui sono descritte le tecniche per evitare le vulnerabilità della sicurezza più comuni nelle app Web:

Esistono altre vulnerabilità di cui è necessario essere consapevoli. Per altre informazioni, vedere gli altri articoli della sezione Sicurezza e Identity del sommario.

Proteggere i flussi di autenticazione

È consigliabile usare l'opzione di autenticazione sicura più sicura. Per i servizi di Azure, l'autenticazione più sicura è l'identità gestita.

Evitare la concessione delle credenziali della password del proprietario della risorsa perché:

  • Espone la password dell'utente al client.
  • È un rischio significativo per la sicurezza.
  • Deve essere usato solo quando altri flussi di autenticazione non sono possibili.

Le identità gestite sono un modo sicuro per eseguire l'autenticazione ai servizi senza dover archiviare le credenziali nel codice, nelle variabili di ambiente o nei file di configurazione. Le identità gestite sono disponibili per i servizi di Azure e possono essere usate con Azure SQL, Archiviazione di Azure e altri servizi di Azure:

Quando l'app viene distribuita in un server di test, è possibile usare una variabile di ambiente per impostare il stringa di connessione su un server di database di test. Per altre informazioni, vedere Configurazione. Le variabili di ambiente vengono in genere archiviate in testo normale e non crittografato. Se il computer o il processo è compromesso, è possibile accedere alle variabili di ambiente da parti non attendibili. È consigliabile usare le variabili di ambiente per archiviare un stringa di connessione di produzione perché non è l'approccio più sicuro.

Linee guida per i dati di configurazione:

  • Non archiviare mai la password o altri dati sensibili nel codice del provider di configurazione o in file di configurazione di testo normale. Per l'archiviazione di segreti per lo sviluppo, è possibile usare lo strumento Secret Manager.
  • Non usare i segreti di produzione in ambienti di sviluppo o di test.
  • Specificare i segreti all'esterno del progetto in modo che non possano essere inavvertitamente inviati a un repository del codice sorgente.

Per altre informazioni, vedi:

Per informazioni su altri provider di servizi cloud, vedere:

Risorse aggiuntive