È un modo sicuro per identificare gli utenti che si connettono a un server di chat?

2

Prima di iniziare, tutte le informazioni andranno su HTTPS.

Quindi, il mio sito web è fondamentalmente come un forum con la parte di autenticazione finita e funzionante. Questo forum ha un'applicazione di chat in tempo reale che invia e riceve informazioni da un server Node.js. Voglio che le persone siano in grado di inviare informazioni solo se si è connessi e solo dal proprio account.

Quindi sto pensando di farlo in questo modo:

  1. L'utente accede (il forum non è il client di chat)
  2. PHP imposta un cookie con un token di sicurezza che è una stringa HEX generata casualmente (utilizzando la funzione mcrypt_create_iv, con una lunghezza casuale compresa tra 15 e 22 caratteri)
  3. Anche il token viene salvato in un database MySQL, insieme all'ID utente
  4. Quando l'utente invia un messaggio tramite chat, verrà inviato anche il suo ID utente, insieme al suo token di sicurezza
  5. Il server Node.js confronterà il token di sicurezza nel database con l'ID utente e, se corrispondono, l'utente sarà in grado di chattare

Questo è un buon schema di sicurezza, se non perché e come posso migliorarlo? Grazie

    
posta fiction 22.08.2014 - 14:23
fonte

1 risposta

4

Dovresti assicurarti che il tuo token di sessione sia casuale e almeno a 128 bit. A parte questo, in pratica invii un token di sessione e un ID utente. Per essere onesti, solo il token di sessione dovrebbe essere necessario per identificare un utente dal momento che è univoco. Assicurati anche di distruggere il token di sessione dopo che l'utente si è disconnesso. A parte questo, sembra simile a qualsiasi altro schema di login.

    
risposta data 22.08.2014 - 17:50
fonte

Leggi altre domande sui tag