Quali metodi possono essere utilizzati per verificare l'identità rispetto a un database?

0

Ho un database con dati di contatto individuali per gli studenti ... questi dati includono nome, indirizzo, numero di telefono, data di nascita, ecc. (nessun social ... che avrebbe reso questo troppo facile apparentemente, ah ah)

Vorrei consentire ai loro genitori di accedere ai propri dati da casa e poterli visualizzare e modificare. Ovviamente, la sicurezza è una priorità enorme qui; Non voglio che un creeper ottenga l'accesso al loro indirizzo o somesuch.

Ci sono dei metodi che potrei usare:

  1. Non è necessario che io generi un codice o inserisca nuovi dati per loro manualmente (questo è semplicemente poco pratico e mi richiede di verificare manualmente ogni combo studente / genitore).
  2. Potrebbe non essere facilmente estratto da, ad esempio, un account Facebook (il nome e la data di nascita sono entrambi facilmente accessibili per esempio).
  3. Non appoggiarsi a dati che hanno maggiori probabilità di essere inaccurati (il nome di una strada ha molte più probabilità di essere digitato erroneamente di un cognome, ad esempio ... e per lo stesso motivo, i nomi di battesimo non sono sempre degni di fiducia [alcune persone hanno un secondo nome, ma potrebbero avere il loro primo posto, o un nickname, o qualsiasi altra cosa)).

Sono perplesso ... spero che qui non ci sia una tecnica a cui non sto pensando, ma forse non c'è semplicemente modo di farlo senza che sia troppo facile per qualcuno accedervi.

    
posta xtraorange 01.08.2014 - 08:35
fonte

2 risposte

2

Dato che hai degli indirizzi postali, invia loro una lettera tramite la stampa unione che contiene un lungo codice casuale. Inseriscono il codice casuale lungo e forse alcune altre informazioni che dovrebbero conoscere come D.O.B. per convalidare hanno il possesso fisico della lettera e qualche conoscenza dello studente.

Questo ti dice che sono:

  • Qualcuno con accesso all'indirizzo postale
  • Ragionevolmente il genitore o il tutore se opportunamente indirizzato
  • O un postino corrotto;) O fratello curioso ...

Una volta superato il controllo dell'autenticazione iniziale, è necessario inserire un indirizzo e-mail e una password. Una volta verificato, il codice che hai inviato li ha invalidati. Un id univoco, sequenziale o un guid dovrebbe essere generato contro ogni utente nel DB. Questo diventa il loro identificatore univoco e puoi quindi associare gli utenti che dovrebbero avere accesso al record.

Poiché il codice che generi è effettivamente una password, per la memorizzazione del codice deve essere utilizzata una buona pratica di sicurezza per la memorizzazione delle password: suggerisci bcrypt ( link ) o PBKDF2 ( link ) con una funzione salina e di lavoro adeguata.

Un altro approccio potenziale sarebbe l'autenticazione basata sulla conoscenza ( link ) - chiedi loro le cose che solo loro saprebbero. Ciò richiede di avere registrazioni accurate di cose che dovrebbero sapere! (ad esempio, tutti i voti dell'ultima scheda del loro figlio).

Spero che ti aiuti.

Saluti Andy

    
risposta data 01.08.2014 - 09:50
fonte
1

Se fossi in me, chiederei allo studente di fornire l'indirizzo / i email per il / i genitore / i, quindi creare account per ciascuno di quegli indirizzi e-mail (se non esistono già) con accesso al conto dello studente. Se si tratta di un nuovo account, inviare per e-mail la password e l'URL all'indirizzo fornito. Incorporare una password complessa nell'URL è una soluzione migliore.

Fornendo l'e-mail, lo studente acconsente esplicitamente a consentire l'accesso ai propri dati oltre a fornire un'identità (indirizzo e-mail) per l'utente e un mezzo per contattarli.

Il rischio è che l'e-mail contenente la password sia intercettata: si tratta di un problema generico con la fornitura di credenziali e le soluzioni sono discusse altrove. Tuttavia, in questo caso, è possibile che lo studente possa fornire un token di autenticazione secondario (ad esempio richiamato dall'applicazione quando effettua il login) su un canale alternativo, almeno per l'accesso iniziale.

    
risposta data 01.08.2014 - 14:57
fonte

Leggi altre domande sui tag