Avere un criterio coerente "non rivelare gli indirizzi email dei membri" [duplicato]

1

Gli sviluppatori sono dogmatici di avere "username errato o password" nelle schermate di accesso; le nostre applicazioni non dovrebbero rivelare se qualcuno è un membro con un indirizzo email.

Ma ci sono altri due modi in cui la nostra applicazione può rivelare un membro:

  1. la pagina di registrazione restituisce " questa email è stata registrata da qualcun altro " (spesso questo è un endpoint dedicato per Ajax)
  2. la pagina di reimpostazione della password ha un " il tuo link è stato inviato alla tua email " o " l'email fornita non esiste nei nostri archivi "

Perché siamo solo preoccupati per la schermata di accesso che rivela l'appartenenza? Dovremmo tappare anche questi fori?

La " email fornita non esiste nei nostri archivi " nella pagina di reimpostazione della password è utile quando abbiamo inserito un'e-mail errata o ci siamo registrati con un indirizzo email errato. Esempio: mi chiamo Raj, ho registrato in modo errato con [email protected] (J mispellato) e provo a inviare una richiesta di reimpostazione a [email protected] .

    
posta aitchnyu 13.10.2014 - 10:13
fonte

2 risposte

2

Se si suppone che questo sia un sistema sicuro in tale misura e poiché l'indirizzo e-mail è divulgato altrove, gli sviluppatori potrebbero rendere il nome utente un numero generato a caso invece dell'indirizzo e-mail dell'utente. Questo chiude il gap di perdita di informazioni.

Ad esempio, per un nome utente numerico generato:

  • Accesso non riuscito: "Nome utente errato"
  • Password fallita: "Password errata"
  • Già registrato: questo errore non si verifica con una chiave del nome utente surrogata, a meno che tu non abbia un criterio aziendale che le persone (ad esempio in una famiglia) non possono utilizzare lo stesso indirizzo email.
  • Reimpostazione della password (per nome utente): l'indirizzo email non viene divulgato poiché il messaggio può dire "Il link di reset è stato inviato all'indirizzo email associato a questo nome utente."
  • Ripristino password (tramite indirizzo email): "Il link di reset è stato inviato a questo indirizzo email per tutti gli account associati a questo indirizzo email."

Inoltre, l'uno o l'altro errore della convalida del campo di accesso aggiunge solo pochi bit di entropia extra alla sicurezza complessiva della forza bruta riducendo al contempo l'usabilità. Basta aumentare i requisiti minimi di lunghezza della password per ottenere sensibilmente lo stesso effetto. Si presume che il ritardo esponenziale esista in ogni caso sui tentativi di password.

    
risposta data 13.10.2014 - 10:46
fonte
0

Di solito c'è un compromesso tra sicurezza e usabilità. Come sviluppatore web, devi decidere quale livello di sicurezza è richiesto per la tua applicazione e trovare un equilibrio tra i due.

Come giustamente sottolineato da voi, c'è un trattamento incoerente sulla protezione degli indirizzi e-mail su molti siti web. Il motivo è abbastanza semplice:

  • Una pagina di accesso richiede solo un indirizzo email e una password, il che lo rende abbastanza facile fare diversi tentativi in poco tempo.
  • Una pagina di registrazione richiede più tempo per essere completata manualmente.
  • È possibile implementare CAPTCHA sia sulla pagina di reimpostazione della password che su pagina di registrazione per impedire l'enumerazione automatica degli indirizzi email.

Nascondendo il fatto che un indirizzo e-mail è già occupato (alla registrazione), o che un indirizzo e-mail è sbagliato (sulla reimpostazione della password), la conseguenza è che gli utenti legittimi che commettono un errore di digitazione non sono in grado di registrarsi , o reimpostare la password e non saprebbero qual è il problema. Il costo è che si perde un cliente o si aumenta il carico di lavoro del proprio help desk e si aumenta la frustrazione per gli utenti.

Nel caso in cui si mostri un errore di accesso generico, finché l'indirizzo e-mail rimane sullo schermo dopo un tentativo fallito, non è difficile stabilire se l'indirizzo e-mail o la password sono stati inseriti erroneamente. L'inconveniente di non essere a conoscenza di ciò che è sbagliato è abbastanza irrilevante.

Se il tuo requisito di sicurezza è così elevato che gli indirizzi email devono essere tenuti segreti, allora dovrebbe mai essere usato nel tuo sistema di autenticazione. Prova invece a nomi utente.

    
risposta data 13.10.2014 - 10:54
fonte

Leggi altre domande sui tag