Share via


Protezione dei dati di stato

Nelle applicazioni che consentono la gestione di dati sensibili o decisioni di qualsiasi tipo in materia di sicurezza è necessario mantenere il controllo dei dati e non consentire l'accesso diretto da parte di altro codice potenzialmente dannoso. Il modo migliore per proteggere i dati in memoria è dichiararli come variabili private o interne, ovvero con ambito limitato allo stesso assembly. Anche questi dati sono tuttavia soggetti a un tipo di accesso che è necessario determinare.

  • Tramite meccanismi di reflection, è possibile ottenere e impostare membri privati in codice altamente attendibile che può fare riferimento all'oggetto.

  • Tramite serializzazione, è possibile ottenere e impostare membri privati in codice altamente attendibile se è possibile accedere ai dati corrispondenti nella forma serializzata dell'oggetto.

  • Nella fase di debug, questi dati possono essere letti.

Accertarsi che nessun metodo o proprietà esponga tali valori in modo non intenzionale.

In alcuni casi, i dati possono essere dichiarati come "protected" con accesso limitato alla classe e alle classi derivate. L'esposizione aggiuntiva suggerisce comunque l'adozione delle seguenti precauzioni:

  • Controllare il codice autorizzato a derivare dalla classe vincolandolo allo stesso assembly o utilizzando la sicurezza dichiarativa descritta in Sicurezza dell'accesso ai metodi per richiedere identità o autorizzazioni valide per la derivazione del codice dalla classe.

  • Accertarsi che per tutte le classi derivate sia implementata una protezione di questo tipo o che siano sealed.

Vedere anche

Concetti

Linee guida per la generazione di codice sicuro