È sicuro affidarsi all'indirizzo e-mail di un provider di identità di terze parti?

3

Supponendo che un provider di identità di terze parti sia affidabile (ad esempio, Facebook, Google, Windows Live), è sicuro utilizzare l'indirizzo email (come previsto dal servizio) per connettere un utente che accede con diversi provider allo stesso account?

Ad esempio, supponiamo di avere una tabella simile a questa:

.-------------------------------------------------------------------.
| user_id | fullname | email        | facebook_ident | google_ident |
|---------+----------+--------------+----------------+--------------|
| 1       | John Doe | [email protected] | 4362           | null         |
'-------------------------------------------------------------------'

Se un utente effettua l'accesso tramite Google utilizzando l'e-mail "[email protected]", posso collegarlo in modo affidabile con user_id 1 (ad esempio, imposta google_ident = "new_ident" e accedi come tale)?

Alcuni scenari di preoccupazione:

  • Se in qualche modo il provider interrompe la verifica dell'indirizzo email dell'utente, qualcuno può registrarsi al servizio con una e-mail che non possiede e dirottare il rispettivo utente sul mio sistema.
  • Se, da parte mia, l'utente cambia l'e-mail con una che non possiede, passerà "il suo account" a un utente che accederà successivamente con quell'e-mail (e dirotterà il suo account come bene).

Una possibile soluzione che riesco a vedere:

  1. Non consentire agli utenti di creare account quando il loro indirizzo email è già in uso
  2. Consenti la connessione degli account solo quando l'utente ha già effettuato l'accesso
posta Christian 30.06.2016 - 20:24
fonte

1 risposta

2

Hai ragione che affidarsi a una terza parte per l'autenticazione del tuo sistema può avere alcuni svantaggi.

È difficile capire come si possa considerare di consentire a un estraneo (utente non autenticato) di collegare un account esistente a un altro provider. Ciò rappresenterebbe sicuramente un enorme difetto nel tuo design.

Normalmente, quando si utilizza l'autenticazione di terze parti, si consente a un utente di creare un account sul proprio sito tramite l'identificatore di terze parti e di accedere con lo stesso metodo. È necessario che l'utente sia già identificato per qualsiasi modifica apportata al proprio account, specialmente quando si tratta di dettagli di autenticazione.

Anche se non è una cattiva pratica collegare più di un fornitore a un account, diminuisce la sua sicurezza in quanto quel singolo account può diventare vulnerabile a difetti di più di un sistema.

    
risposta data 30.06.2016 - 20:45
fonte

Leggi altre domande sui tag