Protezione (Guida per programmatori C#)
Aggiornamento: novembre 2007
La sicurezza è un aspetto necessario di tutte le applicazioni C#, che è necessario tenere in considerazione in ogni fase dello sviluppo e non solo al termine delle fasi di progettazione e implementazione.
Suggerimenti per la protezione specifici per C#
In questo elenco non sono segnalati tutti i possibili problemi di sicurezza, ma solo alcuni dei problemi più frequenti per gli sviluppatori C#.
Utilizzare la parola chiave checked per controllare il contesto di controllo dell'overflow nelle conversioni e nelle operazioni aritmetiche di tipo integrale.
Utilizzare sempre il tipo di dati più restrittivo per i parametri. Ad esempio, quando si passa un valore a un metodo che descrive la dimensione di una struttura dati, utilizzare un valore integer senza segno anziché un valore integer.
Non prendere decisioni basate su nomi di file. I nomi di file possono essere espressi in numerosi modi diversi ed è possibile eludere la verifica di tipi di file specifici.
Non impostare come hardcoded password o altre informazioni riservate nell'applicazione.
Convalidare sempre l'input utilizzato per generare query SQL.
Convalidare tutti gli input nei metodi. I metodi delle espressioni regolari nello spazio dei nomi System.Text.RegularExpressions sono utili per verificare che il formato dell'input sia corretto, ad esempio nel caso di un indirizzo di posta elettronica.
Non visualizzare le informazioni relative alle eccezioni, poiché forniscono utili indizi in caso di eventuali attacchi.
Verificare che l'applicazione funzioni anche se eseguita con autorizzazioni minime. Per l'esecuzione di alcune applicazioni è richiesto l'accesso come amministratore.
Non utilizzare gli algoritmi di crittografia personali. Utilizzare le classi System.Security.Cryptography.
Assegnare nomi sicuri agli assembly.
Non memorizzare informazioni riservate in file XML o altri file di configurazione.
Controllare con attenzione il codice gestito che esegue il wrapping del codice nativo. Confermare che il codice nativo sia sicuro.
Prestare la massima attenzione quando si utilizzano delegati passati dall'esterno dell'applicazione.
Eseguire lo strumento di analisi del codice di Visual Studio sugli assembly per verificare la conformità con le linee guida di progettazione di Microsoft .NET Framework. Questo strumento è inoltre in grado di individuare e segnalare oltre 200 errori del codice. Per ulteriori informazioni, vedere Rilevamento e correzione degli errori del codice gestito.
Altre risorse per la sicurezza
Nei siti Web Microsoft seguenti sono fornite informazioni dettagliate sulla creazione di software sicuro e affidabile.