Il mio stack è sicuro su mongodb se utilizzo i ruoli username / password di mongos predefiniti? [chiuso]

1

il mio stack è sicuro su mongodb se uso username / password di mongos predefiniti e ruoli per generare token, e personalmente non cerco di creare un hash salt + per i nomi utente & password (avendo una combinazione di sali DB locali, sali AWS esterni e sali endpoint hard-coded)?

Lo stack: Sono ospitato su AWS con un file pem che consente l'accesso SSH.

I miei gruppi di sicurezza consentono solo SSH dal mio indirizzo IP.

Dispongo di un servizio di bilanciamento del carico che utilizza SSL e punta a nginx, che punta al nodo. Il nodo forza tutto il traffico http a reindirizzare a https. e il mio database è mongo.

mongo non richiede un nome utente o una password per interrogare i dati.

il bilanciamento del carico consente l'ingresso e l'uscita di tutto il traffico HTTP e HTTPS. l'EC2 ammette solo HTTP e HTTPS dal loadbalancer.

Ho degli endpoint API pubblici in cui creo un token tramite login con un nome utente e un ampli corretti; password.

Non memorizzo la password degli utenti nel database, ma eseguo l'hash usando

crypto.createHmac('sha512', server_salt + user_salt)

dove l'utente sale potrebbe essere indovinato da una combinazione delle informazioni degli utenti nel database più una stringa codificata nel mio script js, ma il server sale non si trova nel mio database. si trova in un servizio di assistenza Amazon.

Il database che ho che ospita i token attivi per gli utenti non espone l'ID utente per ciascun token, ma ha di nuovo un hash unidirezionale. i token scadono ogni 24 ore. (Se eseguissi una restrizione dell'accesso al livello di raccolta, esporrò l'ID utente mappato a ciascun token, ma la raccolta sarebbe limitata all'accesso da parte dell'utente stesso, quindi dovrebbe essere sicuro?)

Le stringhe di token sono generate al login usando:

crypto.randomBytes(120,function(err,byte_token)

Se un token non è valido per un utente, restituisco 401.

Se un utente tenta di accedere a informazioni utente che non appartengono a lui, restituisco 403.

I token scadono ogni 24 ore, utilizzando mongos expireAfterSeconds link

Pensieri?

    
posta user1709076 26.01.2017 - 00:35
fonte

0 risposte

Leggi altre domande sui tag