Qual è il modo più sicuro per salvare la stringa di connessione ad un database?

Utente HTML.it
chiede

Qual è il modo più sicuro per salvare la stringa di connessione ad un database?

Redazione HTML.it
risponde

Le stringhe di connessione ai database dovrebbero essere sempre salvate nella sezione connectionStrings del file web.config:

<connectionStrings>
  <add name="DefaultDB" 
     connectionString="Data Source=.SQLEXPRESS;Initial Catalog=Rubrica"
     providerName="System.Data.SqlClient"/>
</connectionStrings>

ASP.NET, infatti, blocca automaticamente qualsiasi richiesta diretta del file web.config, in modo che gli utenti esterni non possano scaricarlo o visualizzarne il codice. Utilizzando questo approccio, per recuperare la stringa di connessione si può utilizzare l’oggetto WebConfigurationManager:

string conn = 
    WebConfigurationManager.ConnectionStrings["DefaultDB"].ConnectionString;

Accedendo alla collezione ConnectionString di WebConfigurationManager (per indice o con il nome corrispondente all’attributo name, nel nostro esempio DefaultDB), si possono recuperare tutte le stringhe di connessione definite per l’applicazione.

Se si vuole ottenere una protezione maggiore per le stringhe di connessione, è possibile crittografare il file web.config (o solo alcune delle sue sezioni), utilizzando l’applicazione aspnet_regiis.exe, come esemplificato nella documentazione in linea.