6

Stiamo migrando uno dei nostri siti su ASP.Net. Non vogliamo utilizzare la sicurezza integrata, che utilizza l'account Windows per connettersi al server SQL (non entrerà nel perché, è appena uscito dalla domanda). Abbiamo creato un nome utente e una password per connettersi a SQL Server e vorremmo utilizzare tale nome utente e password, tuttavia, non vogliamo che altri sviluppatori vedano queste informazioni (facilmente leggibili da web.config) .... Lo so può essere crittografato, ma può essere facilmente decrittografato dagli sviluppatori, inoltre la crittografia ha un impatto sulle prestazioni.. Stringa di connessione SQL Server - nascondere la password di altri sviluppatori

C'è qualche soluzione a questo problema?

risposta

2

Ecco un buon tutorial su Encrypting Configuration Information in ASP.NET 2.0 Applications

Basta non dare gli altri sviluppatori chiave

In alternativa, è possibile bloccare l'autenticazione per SQL tramite certificati installati. In questo modo si imposta la sicurezza in base al client e non all'utente. http://msdn.microsoft.com/en-us/library/ff649255.aspx

La nostra pratica standard prevede l'utilizzo di un "Login per sviluppatori" nel database di sviluppo con accesso limitato e un nome utente/password diversi per la casella di produzione. Gli sviluppatori non hanno accesso alla casella di produzione, solo agli sviluppatori principali e quindi la produzione web.config viene copiata tramite lo script di distribuzione.

+1

Questo vale per il mio e i vostri commenti poiché non ho mai crittografato un file web.config. Ma dopo aver letto il tuo link, cosa impedisce a un dev di impostare un oggetto up (dim sqlConn come nuova sqlconnection (getConfigSection), IIS decodifica automaticamente) e quindi imposta una variabile stringa = object.connectionString? O usare il debugger per ottenere quelle informazioni facendo un debug passo dopo passo? – Tommy

+0

dovrai autenticarti dalla workstation o da un certificato, perché tutti gli sviluppatori avranno accesso al debugger – Glennular

0

Gli sviluppatori devono accedere al file web.config? Se è così, penso che potresti essere sfortunato. In caso contrario, ovvero non è necessario modificare il file web.config, modificare le autorizzazioni su di esso in modo che solo gli amministratori e il processo asp.net possano leggere il file.

0

Nella mia esperienza, tende a essere difficile nascondere questo tipo di cose ai vostri sviluppatori interni. Anche la crittografia dell'infroaming di configurazione nel webconfig mostrerebbe ancora se i tuoi sviluppatori hanno appena passato il codice ...

Direi che se dovessi farlo, potresti creare una stringa costante privata nel codice per il tuo Stringa DB e quindi utilizzare Dotfuscator o simili sull'applicazione compilata. Ovviamente, il codice sorgente stesso dovrebbe anche essere crittografato o ai tuoi sviluppatori impedito altrimenti di accedervi.

0

Non si può davvero proteggere la password dagli sviluppatori - inoltre, che senso ha? Quello che puoi fare è avere un server di sviluppo separato a cui gli sviluppatori hanno accesso e un ambiente di produzione, al quale non hanno.

Gli sviluppatori non devono mai accedere direttamente al database per eseguire alcuni test o qualcosa del genere? se lo fanno, avrebbe senso fare il test usando lo stesso account utilizzato dall'applicazione, altrimenti i risultati del test potrebbero non riflettere la realtà.

0

prompt for the password, quando ti connetti per la prima volta e traccia il passowrd in sessione. Ora solo tu sarai in grado di connettere il database da qualsiasi luogo. Reindirizza tutti quelli alla pagina non disponibile per le applicazioni per il resto degli utenti che non hanno la password.

Problemi correlati