Quali sono le raccomandazioni, le migliori pratiche e le pratiche per quanto riguarda la gestione delle stringhe di connessione nelle applicazioni Web? Quali cose si dovrebbero mai e poi mai fare?
Opzione migliore: non utilizzare una password per il database, ma invece utilizzare (Windows) l'autenticazione integrata, se possibile, e ovviamente isolare l'identità dell'applicazione che è autorizzata per il database. In questo modo l'OS / Webserver / SCM gestiscono la tua identità, in maniera molto sicura.
Se non è possibile seguire la procedura di IWA, è necessario crittografare in modo sicuro il connstring, preferibilmente utilizzando qualcosa come DPAPI (quindi non è necessario gestire la chiave di crittografia) e archiviare il valore crittografato in un registro protetto chiave con ACL forti.
Se sei su ASP.NET (dai tuoi commenti, ma non da OP), ci sono strumenti integrati per farlo automaticamente (aspnet_setreg, aspnet_regiis, ecc. A seconda della versione ...)
cose che non dovresti mai fare
cose che dovresti fare.
Consiglia di archiviare la tua stringa di connessione al di fuori della directory principale del sito web.
Se utilizzi ASP.NET, il tuo file web.config si troverà nella directory principale del sito Web, ma puoi crittografare una sezione del file web.config utilizzando l'API di Data Protection, che memorizza in modo sicuro la chiave di decrittografia.
Quale framework stai usando per la tua applicazione web?
Come opzione, prova ad utilizzare il ruolo dell'applicazione per accedere al server sql
I vantaggi:
Leggi altre domande sui tag web-application appsec databases