Protezione dei dati di stato
Nelle applicazioni che consentono la gestione di dati sensibili o decisioni di qualsiasi tipo in materia di protezione è 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 protezione dichiarativa descritta in Protezione 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.