Ho bisogno del tuo parere professionale su questo argomento, per favore.
L'app che sto sviluppando ha 2 parti: Insegnanti & studenti .
Gli insegnanti utilizzano l'app per creare un progetto e associarvi gli studenti.
Quindi, studenti accede al progetto nel nostro sistema e completa alcune attività.
Non vogliamo che gli utenti registrino o utilizzino un account esistente (tramite oAuth2). Desideriamo semplicemente che abbiano un modo semplice e veloce per accedere al sistema, con il minimo di configurazione possibile.
Si noti che è necessario consentire più voci da posizioni diverse.
Ogni studente avrà più "punti di accesso", uno per ogni progetto a cui è assegnato.
La ragione per cui ci preoccupiamo così poco dei possibili furti che possono verificarsi è che gli studenti hanno possibilità molto limitate, e i dati che vengono mostrati non sono confidenziali.
Posso pensare a 2 opzioni adatte:
- Invia allo studente un'email con un link che contiene una chiave di accesso, ad esempio:
example.com/students/skfn38rhsah93e2dsasdsd2
.
Il link non scadrà. - Invia allo studente un'email con un link e una chiave di accesso breve che sarà richiesta dal link, ad esempio:
Link:example.com/students/dfwkl4tihifhdso03n
Chiave di accesso:A7F21D
La seconda opzione è più sicura perché la prima verrà salvata nella cronologia del browser, inviata nel referrer http e generalmente esposta. L'utilizzo della seconda opzione assicura che chiunque abbia accesso al link abbia / abbia avuto accesso all'account Email. Tuttavia, è una procedura leggermente più lunga per lo studente.
Quindi le mie domande sono:
- La sicurezza aggiuntiva che offre la seconda opzione vale il processo più lungo, secondo lei? So che questa è una domanda soggettiva, ma la tua opinione significa molto per me.
- Se pensi che la prima opzione sia migliore, per quanto tempo dovrebbe essere la chiave di accesso?
Voglio incorporare l'ID studente e l'ID del progetto al suo interno, quindi stavo pensando di utilizzare JWT, ma sono 220 caratteri. È troppo? ( URL possono contenere fino a 2000 ). - Se pensi che la seconda opzione sia migliore, per quanto tempo dovrebbe essere la chiave di accesso?
Come dovrei progettare il link? Come nella prima opzione? (usando una JWT) - C'è un modo migliore?
Grazie per l'aiuto!
Nota: sto pensando di usare SSL, solo FYI.