Memorizza le password degli utenti nel database NoSQL?

7

Attualmente sto codificando il backend di un sito web e non ho trovato un articolo in cui questo sia discusso. Voglio memorizzare tutti i dati delle mie applicazioni in MongoDB, ma mi piacerebbe dividere le mie informazioni utente sensibili in un database MySQL. Il mio razionale è che il database MySQL sarà accessibile solo per l'autenticazione, ma mi piacerebbe memorizzare nomi utente e password in un database che è ACID. Il vantaggio aggiunto è che i dati dell'utente sono fisicamente separati dall'entità utente stessa, cosa che mi piace.

La mia domanda è, è necessario? Devo conservare tutti i miei dati in MongoDB?

    
posta MikeG 12.09.2012 - 19:25
fonte

1 risposta

4

Se pensi che il motore di database che stai pianificando di utilizzare non sia abbastanza sicuro, allora non consiglierei di usarlo per qualsiasi cosa. Se è abbastanza sicuro, la complessità aggiuntiva di due API di database diverse renderà la tua vita più difficile e non influenzerà realmente un utente malintenzionato (lo scaricherà comunque su un file).

Se vuoi che i dati siano fisicamente separati, puoi mettere il database delle password su una macchina separata dagli altri tuoi dati.

Se tu hai cancellato correttamente le tue password (PBKDF2, bcrypt o scrypt; costo elevato / numero di iterazioni), quindi il database delle password non dovrebbe essere molto utile per gli aggressori in ogni caso, tranne nel caso di password stupidamente deboli.

Per quanto riguarda la conformità ACID: MongoDB ha operazioni atomiche , semplicemente non ha multi- < a href="http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart"> documento transazioni, che presumibilmente non è necessario in un database che ne ha solo uno raccolta .

    
risposta data 12.09.2012 - 22:58
fonte

Leggi altre domande sui tag