Memorizza password su Server Config

2

Ho un'applicazione web. La mia app web ha bisogno di accedere ad alcune altre applicazioni come MySQL.

Affinché la mia app web possa accedere a MySQL, devo fornire un nome utente / password. Quali sono le migliori pratiche per archiviare questo nome utente / password sul server in modo sicuro (non in testo semplice che chiunque potrebbe inciampare)?

Per maggiore chiarezza, NON è necessario memorizzare le informazioni degli utenti della mia app Web. Ho bisogno di memorizzare un utente / pass per la mia web-app per usare MySQL.

Questa sembra una domanda di base a cui sarebbe già stata data una risposta, tuttavia dopo aver cercato in giro, le uniche risposte correlate che riesco a trovare sono le seguenti:

posta William Bing Hua 27.11.2016 - 00:05
fonte

1 risposta

3

Tartarughe fino in fondo è un bel discorso che tratta questo argomento.

In breve, non ci sono grandi soluzioni, perché se memorizzi la password nel database da qualche parte, devi autenticarti in che in qualche modo, il che ti lascia indietro dove hai iniziato. Tuttavia, ci sono alcune opzioni che riducono il rischio.

Le soluzioni più comuni consistono nel memorizzare la password in un file non tracciato o in una variabile di ambiente sul server. Ciò impedisce una perdita del codice sorgente dall'esporre la password, ma qualcuno che ha accesso al tuo server sarà comunque in grado di vederlo. Puoi anche utilizzare i sistemi che codificano le password in un file che viene quindi memorizzato nel controllo di versione, che offre tutti i vantaggi di un VCS, ma questo cade su problemi simili.

Personalmente, mi piacciono i sistemi di gestione dei segreti come Hashicorp's Vault o Square's Keywhiz. Si tratta di sistemi che (di solito) vivono all'esterno del server e forniscono un'API per ottenere e impostare valori segreti. Mentre richiedono l'autenticazione, questa autenticazione può essere valori di sessione temporanei, simili ai cookie di sessione per i siti Web, che impediscono a un utente malintenzionato di ottenere l'accesso a lungo termine ai propri segreti, poiché la sessione che hanno rubato scadrà (in un momento configurabile ). In genere, questi sistemi includono anche i log di audit, quindi una volta individuata una violazione, puoi rintracciare da dove proviene.

La soluzione che ha più senso per la tua situazione particolare dipende molto dalle tue esigenze. Vault e gli amici sono eccellenti, ma introducono molta complessità operativa aggiuntiva, forse più dell'intero resto dell'applicazione. Dovrai valutare i compromessi per te stesso per vedere quale sarebbe una buona misura.

    
risposta data 27.11.2016 - 00:31
fonte

Leggi altre domande sui tag