La migliore strategia per condividere alcuni dati utente sensibili tra Nodo e PHP

0

Sto creando un sito web costruito su PHP. Ha una piccola pagina in cui gli utenti possono avere una chat di gruppo e scambiarsi messaggi. Per quella pagina apro una websocket con l'aiuto di socket.io e expressjs . Voglio usare i nomi utente con cui le persone si sono registrate. E, ovviamente, voglio che le persone non siano in grado di impersonare altre persone. Quindi, quando l'utente inserisce un messaggio, ottiene socket.emit ed al server, e dal server faccio qualcosa del tipo:

socket.on('message', function(msg) {
    io.emit('message', {
        username: username
        message: msg
    });
});

Per trasmettere quel messaggio a tutti.

La mia domanda è, come posso recuperare il nome utente? La mia soluzione al momento è questa. Creo un ID utente lungo 128 caratteri lungo per l'iscrizione utente, memorizza in rosso qualcosa come

user_id: username ,

e quindi passo user_id su socket.emit e faccio sul server Node

username: redisClient.get("user_id") .

È una buona idea? È sicuro? O ci sono soluzioni migliori a questo problema?

    
posta evening 19.08.2018 - 16:15
fonte

1 risposta

1

Dal mio punto di vista il tuo caso si adatta molto bene all'approccio JSON Web Token (JWT). Puoi codificare tutti i dati necessari in JWT e passarli con le richieste. L'applicazione Node.js dovrebbe verificare la firma di JWT ed estrarre tutti i dati necessari da esso. Se qualcosa è troppo grande / complesso da inserire in JWT, l'applicazione back-end potrebbe richiedere per questi dati un altro servizio di backend tramite i meccanismi di sicurezza della rete di back-end.

    
risposta data 19.08.2018 - 16:59
fonte

Leggi altre domande sui tag