Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Sicurezza
lunedì 20 aprile 2009 - 08.36
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
pigi78
Profilo
| Newbie
17
messaggi | Data Invio:
lun 20 apr 2009 - 08:36
Ciao a tutti.
Ho un'applicazione che deve accedere ad un DB. Il .NET (o meglio Visual Studio) inserisce la stringa di connessione in un file "esterno" chiamato <mia_applicazione>.exe.config
Questo mi sta benissimo perchè così se ho due clienti non devo modificare/ricompilare il codice per inserire le credenziali di accesso.
Si apre però un problema di fondo: sui PC del cliente la stringa di connessione è memorizzata in modo "chiaro" all'interno di un file di testo.
Dal punto di vista "sicurezza" non è il massimo!
Stavo cercando altre soluzioni e, a parte l'utilizzo del registro di sistema (che è un po' più nascosto, però sempre "visibile") non ho tante alternative se non quella di usare un file cryptato.
Mi sembra però strano che il .NET, così attento alla sicurezza, non abbia alcun metodo per memorizzare informazioni "sensibili" in modo abbastanza sicuro...
In generale, come si gestisce la sicurezza in questi casi?
Grazie mille
sanbiz
Profilo
| Senior Member
208
messaggi | Data Invio:
lun 20 apr 2009 - 09:49
>Si apre però un problema di fondo: sui PC del cliente la stringa
>di connessione è memorizzata in modo "chiaro" all'interno di
>un file di testo.
>Dal punto di vista "sicurezza" non è il massimo!
Beh si parla proprio di file di testo per accrescerne la flessibilità e rendere molto semplice operazioni semplici, come la stringa di connessione.
Il file .config non dovrebbe contenere informazioni sensibili quali password d'accesso, ma solo stringhe di connessione, impostazioni utente quali colori di sfondo, timeout applicazione ecc ecc.
La sicurezza la ottieni distinguendo la parte client da quella server: il tuo problema è l'accesso al database? Ok, intendi un DB SQL ad esempio?
Se così fosse sarà il server a dover implementare una policy appropriata e quindi impedire accessi non appropriati.
Se proprio hai la necessità di memorizzare la password, evitando di digitarla in fase di connessione, dovrai utilizzare, almeno, un algoritmo di criptazione, ma qui si esula dalla semplicità del file .config.
Prova a pensare: per cambiare la stringa di connessione nel file .config ti bastano pochi secondi. Se solo decidessi di scrivere la password nel registry ci vorrebbe già molto più tempo (e sarebbe anche scomodo)... inoltre, nel registy, non vorresti scrivere la password criptata? E qui torni al punto di criptare la tua password.
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
lun 4 mag 2009 - 01:39
Ciao,
la Microsoft ha pensato a questa problematica, ed ha proposto una soluzione gia' integrata:
http://msdn.microsoft.com/it-it/library/53tyfkaw.aspx
Oltre a questa ovviamente puoi pensare a farti tu una criptazione in lettura e scrittura in quello che scrivi nel config,ma spesso il fatto di mettere una criptazione, a mio avviso, e' pensata per evitare che chiunque facilmente possa accederci, quindi qualcosa di integrato ti semplifica il lavoro...
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !