16 messaggi dal 03 giugno 2004
Ciao a tutti,
come da manuale ho fatto in modo che la user e la password degli utenti registrati al mio sito web venissero immagazinati nel database e, da qui, "ripescati" per mezzo delle stored procedure dopo il login. Fino a qui tutto bene (spero!). Viceversa la user e la password dell'amministratore del sito l'ho posizionata all'interno del file es: AdminLogin.aspx.cs!
Questo file, una volta compilato con Visual Studio.net si "trasformerà" insieme a tutti i file con estensione aspx.cs in una dll. Giusto?
Ora, consapevole del fatto che se un domani dovrò cambiare la user e la password dell'amministratore sarò costretto a ri-pubblicare tutto sul server di produzione, ritenete che questa macchinosa soluzione abbia lo stesso margine di sicurezza dell'abbinata database-stored procedure?
Grazie e a presto
A dir la verità se vuoi fare le cose per bene dovresti hashare le password da db così da essere al riparo da eventuali intrusioni.
Per la password di admin potresti, o mettere anch'essa nel db, semplicemente associando anche un ruolo agli utenti oppure magari inserendo nel web.config nel tag <credentials> hashata anch'essa.
Non è il massimo ma se si ritiene abbastanza sicuro mettere la stringa di connessioni lì lo è anche una password di admin, anche perché dovrebbero accedere al web.config e capire la password con un algoritmo che prova tutte le combinazioni.
Per l'hash puoi vedere qua
http://www.aspitalia.com/liste/usag/script.aspx?ID=575&Search=hash
Altrimenti ricorri alla criptazione. Esiste una libreria per facilitare il tutto
http://www.aspitalia.com/ricerca/super.aspx?usag=1&key=dpapi
In questo modo metti le password criptate nel db e nel web.config
Permette anche di criptare la stringa di connessione ma non c'è un esempio, se non sbaglio sul sito di ms ce ne uno.
Comunque mettere la password nel sorgente è oltre che scomodo, vano, perché l'assembly è facilmente decompilabile

Ciao

Il mio blog
Homepage
146 messaggi dal 09 marzo 2005
chiaramente ricordati di non fare l'upload dei files *.cs

domanda: xkè non hai messo tutto nel db?


ciao
installa Reflector da http://www.aisto.com/roeder/dotnet/
prendi la dll e fagliela aprire... e vedrai la password in chiaro
la soluzione migliore è quella che ti ha dato Cristian, dato che in questo modo la password (con l'hash) non è decriptabile.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
16 messaggi dal 03 giugno 2004
Non ho messo tutto nel DB per provare altre soluzioni e poi ho pensato: se qualcuno riesce a bucare il server e quindi a leggere tutti i miei file, impiega meno tempo a vedere i dati (se non sono criptati) dal database che a decompilare le dll, ammesso che conosca un buon decompilatore!
Comunque seguirò i vostri consigli e per questi vi ringrazio.
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
gantine <gantine> ha scritto:
Ciao a tutti,
come da manuale ho fatto in modo che la user e la password degli
utenti registrati al mio sito web venissero immagazinati nel database
e, da qui, "ripescati" per mezzo delle stored procedure dopo il
login. Fino a qui tutto bene (spero!).

Viene almeno crittografata la password nel database?

Viceversa la user e la
password dell'amministratore del sito l'ho posizionata all'interno
del file es: AdminLogin.aspx.cs! Questo file, una volta compilato con
Visual Studio.net si "trasformerà" insieme a tutti i file con
estensione aspx.cs in una dll. Giusto?
Ora, consapevole del fatto che se un domani dovrò cambiare la user e
la password dell'amministratore sarò costretto a ri-pubblicare tutto
sul server di produzione, ritenete che questa macchinosa soluzione
abbia lo stesso margine di sicurezza dell'abbinata database-stored
procedure? Grazie e a presto

No. E' sufficiente un reflector per leggersi quel codice e trovarsi in chiaro username e password.

Ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.