Qual è il metodo preferito per un'applicazione per ottenere le impostazioni che non dovrebbero essere memorizzate nel controllo di versione?

7

Diciamo che un'applicazione che sto scrivendo richiede una password per qualcosa ma non voglio che quella password sia salvata nel controllo della versione (quindi non codifica la password). Quello che stavo facendo è creare un file chiamato PASSWORD che viene letto una sola volta dall'applicazione e ignorato dal controllo della versione. Esiste un metodo più preferenziale per gestire questa situazione?

    
posta knpwrs 24.04.2013 - 21:36
fonte

2 risposte

1

Questo è un problema perenne. Ad un certo punto, quando il software deve accedere a qualcosa protetto da una password, il software ha bisogno di quella password. E affinché il software ottenga quella password e non richieda a un utente di inserirla manualmente, deve essere memorizzata in una memoria persistente di qualche tipo. Vedo diverse opzioni:

  1. Usa un file di password creato da una mano (o copiato), ignorato dal sistema di controllo della versione e forse con una leggibilità limitata (solo il proprietario (0400 su Unix), ad esempio). A volte faccio questo io stesso.

  2. Criptare il file password in qualche modo. Tecnicamente, questo in realtà non risolve il problema, poiché la chiave di decrittazione deve essere memorizzata anche da qualche parte, ma significa che la password non è più memorizzata in chiaro. La chiave di decrittografia potrebbe essere inserita nel software che legge il file di password crittografato e una chiave di crittografia inserita in una piccola utility che genera file di password crittografati. Questo potrebbe essere abbastanza buono. L'ho fatto nei giorni precedenti quando ero più paranoico.

  3. Utilizza un meccanismo con chiave pre-condivisa simile a quello che le persone fanno per ssh su macchine remote senza bisogno di password. Potrebbe essere più difficile da configurare, ma può essere elegante.

risposta data 25.04.2013 - 00:18
fonte
1

Per le applicazioni Windows, c'è il registro o vari file di configurazione, ad es. app.config o web.config, che potrebbero essere utilizzati per memorizzare questo tipo di dati. AppSettings è la raccolta utilizzata all'interno del codice di Windows per accedere al file di configurazione in .Net per esempio.

Sospetto che esistano file e posizioni simili su sistemi che utilizzano altri sistemi operativi per cui tali informazioni sarebbero state archiviate.

Anche se potresti non essere d'accordo sull'archiviazione di un web.config nel controllo di versione, ho avuto più di una volta in cui uno sviluppatore si è arrabbiato che ho commesso il "web.config" e quindi a volte vale la pena considerare quale sia il codice e qual è la configurazione che gli amministratori possono gestire. Se hai una soluzione migliore, perché non la stai postando?

    
risposta data 24.04.2013 - 21:45
fonte

Leggi altre domande sui tag