2 Server 1 Database - Posso usare Redis?

1

Ok ho un paio di domande qui. Prima lascia che ti dia qualche informazione di base. Sto avviando un progetto in cui ho un server node.js che esegue la mia applicazione e il mio sito Web in esecuzione su un altro server normale. La mia applicazione consentirà a più utenti connessioni e aggiornamenti simultanei al database, quindi Redis è sembrato un buon adattamento per la sua velocità e le sue funzioni atomiche.

Per consentire a qualcuno di accedere alla mia domanda devono accedere con un account. Per ottenere un account, devono registrarsi per uno attraverso il mio sito web. Quindi il mio sito web ha bisogno di un database, ma non è importante avere un database come Redis qui perché non ne ha bisogno. Il che mi porta alla mia prima domanda:

1. È possibile utilizzare Redis anche senza node.js?

Sembra che sarebbe conveniente se entrambi i miei server stessero usando lo stesso database per tenere traccia delle informazioni. In alcuni casi, terranno traccia delle stesse informazioni (come nelle informazioni dell'utente) e in altri casi terranno traccia delle informazioni separate. Quindi, anche se il sito web non sfrutta appieno tutto ciò che Redis ha da offrire, sembra che sarebbe più conveniente. Quindi assumendo che Redis potrebbe essere usato in questa situazione che porta alla mia prossima domanda:

2. Poiché Redis è collegato a JavaScript, come gestirò la sicurezza dagli utenti del mio sito web?

Che cosa potrebbe impedire agli utenti del mio sito web di aprire firebug o chrome inspector e apportare modifiche al database? Forse se avessi progettato il mio sito con il layout in questo modo: apply.php- > update.php- > home.php. Dove, dopo aver inviato il modulo, li reindirizzerà alla pagina di aggiornamento in cui verrà eseguito JavaScript e quindi li reindirizzerà dopo il database aggiornato alla pagina iniziale. Non so davvero che sto solo facendo degli scatti al buio a questo punto. :)

Forse un'alternativa migliore sarebbe avere la mia applicazione node.js per accedere al proprio database Redis e avere accesso a un altro database MySQL a cui il mio sito web ha accesso. O forse c'è un altro database che sarebbe più adatto per questa situazione diversa da Redis. In ogni modo qualsiasi direzione su questo argomento sarebbe molto apprezzata. :)

    
posta Aust 28.09.2012 - 02:25
fonte

1 risposta

2

What would be stopping my website users from opening firebug or chrome's inspector and making changes to the database?

Se questo è possibile, hai qualche serio rimodellamento da fare. Tutta la tua autenticazione dovrebbe essere sul lato server delle cose. Il server del nodo deve convalidare la richiesta prima di intraprendere qualsiasi azione. Gli utenti finali che armeggiano con javascript non dovrebbero essere in grado di eseguire azioni che non potevano ancora fare nell'interfaccia web .

Questo non ha assolutamente nulla a che fare con il database in uso. Ti consiglio di non preoccuparti nemmeno di selezionare un DB finché non avrai elaborato quanto sopra.

Addendum

In risposta alla domanda di Aust di seguito.

But if I wrote my code to have the website connect to Redis, then that's when I would run into security issues, yes?

Sì, questo è un enorme problema di sicurezza. Non dovresti scrivere direttamente nel database dal browser web. Per i principianti, per farlo è necessario fornire il database utente / pass per ogni client web. Piuttosto, fai in modo che il tuo codice javascript parli con un'altra app sul tuo server e l'app quella interagisca con il database. La tua app di intermediazione (ovvero, app server, servizio web, livello intermedio, ecc.) Dovrebbe autenticare l'utente e quindi consentire solo azioni che l'utente è autorizzato a fare. Il client web non dovrebbe avere la minima idea che esista un database.

    
risposta data 28.09.2012 - 05:54
fonte

Leggi altre domande sui tag