Ciao,
fabal ha scritto:
tuttavia chi amministra il server chi ha le credenziali per le cartelle ftp potrebbe vederlo, e non credo sia una cosa buona
Penso che un piano di hosting condiviso ti vada un po' stretto in questa situazione. Probabilmente avresti bisogno di almeno un paio di account FTP, di cui uno amministrativo e uno con privilegi limitati.
Comprendi bene che l'economicità dell'hosting condiviso porta con sé limitazioni come questa.
Puoi comunque risolvere con soluzioni alternative, di dubbia efficacia ma comunque sufficienti a scoraggiare utenti poco esperti.
Per esempio, potresti rimuovere la password dal web.config e inserirla nel codice che usi per collegarti al database. Compilalo in un assembly dll (cosa che già avviene se la tua è una webapplication, anziché un website), in modo che non sia visibile in chiaro.
Usa un
SqlCeConnectionStringBuilder per integrare la password nella connection string che hai letto dal web.config.
var builder = new SqlCeConnectionStringBuilder(
ConfigurationManager.ConnectionStrings["nomeConnString"].ConnectionString
);
builder.Password = "abcd";
using (var conn = new SqlCeConnection(builder.ConnectionString))
{
builder.Clear();
conn.Open();
// altro codice
}
fabal ha scritto:
Ho visto che e' possibile criptare parti del web.config ma se non ho capito male l'operazione deve essere fatta sul server.
Esatto, anche se tecnicamente è una limitazione del provider. Se la tua applicazione fosse pubblicata su Microsoft Azure, per esempio, potresti cifrare la sezione del web.config in locale e poi caricare il certificato nel server, in modo che quella stessa sezione possa essere decifrata.
http://eren.ws/2014/02/04/encrypting-the-web-config-file-of-an-azure-cloud-service/ciao,
Moreno
Modificato da BrightSoul il 22 aprile 2014 22.08 -