Utilizzo degli identificatori negli URL per autenticare gli utenti

4

Qualcuno che conosco è registrato su un sito web della comunità in cui possono scambiare messaggi, ecc. Dando un'occhiata alla notifica via email che ricevono quando qualcosa di nuovo è stato pubblicato, contiene un'immagine con un link al loro sito web, qualcosa del tipo:

http://**********.org/****/id/abcdef0123456789abcdef0123456789

Dove ultima parte sembra essere una specie di hash un utente univoco , che quando segui quel link ti porta direttamente al sito web sotto l'account utente, no autenticazione richiesta!

Un po 'perplesso, ho fatto il test e l'ho provato copiando il link e usandolo su un sistema diverso in cui quel sito non è mai stato visitato prima e abbastanza sicuro con solo quell'URL che potevo accedere all'account utente senza intoppo.

Guardando i cookie memorizzati per questo sito web, uno è un PHPSESSID il cui valore non corrisponde all'ID dall'URL, quindi chiaramente che l'elemento hash deve fare riferimento a un account utente sul server, ignorando tutti i tipi di autenticazione.

Non sono esperto di web-tech, ma per curiosità che tipo di autenticazione si chiama? È un modo popolare di registrare l'utente? Questo, per me, non sembra affatto sicuro (ad esempio, la rete di sniffing può rivelare immediatamente queste informazioni).

    
posta fduff 23.12.2015 - 11:12
fonte

2 risposte

4

Se in realtà puoi eseguire azioni come l'altro utente, si chiama "autenticazione veramente scadente". Se ti porta semplicemente alla pagina del profilo, è solo un link: alcuni sistemi permetteranno le visualizzazioni del profilo anche agli utenti non registrati che hanno il link appropriato, anche se normalmente è limitato agli utenti loggati.

In ogni caso, fai attenzione a sperimentare in questo modo: seguire un link è probabilmente soddisfacente, ma modificarlo può metterti nei guai in alcune giurisdizioni.

    
risposta data 23.12.2015 - 11:44
fonte
0

Si noti che la maggior parte dei siti Web consente agli utenti di reimpostare le proprie password dimostrando di avere accesso al proprio indirizzo email. Questa forma di reimpostazione della password funziona in modo simile alla funzione di "accesso con un clic" di cui parli: avere accesso a quel token (e quindi alla posta elettronica) implica che tu sia autenticato.

La differenza principale è che l'utente non sarà consapevole del fatto che il link implica l'autenticazione . Ciò significa che potrebbero condividere il collegamento con un amico o pubblicarlo online senza rendersene conto.

Se c'è davvero un requisito reale per questa funzionalità "one click sign on" (sì, a volte c'è un compromesso tra sicurezza e usabilità) allora le implicazioni sulla sicurezza potrebbero essere ridotte gestendo i token nello stesso modo rigoroso per i token di reimpostazione della password:

  • Crea il token one-time-use - significa che registrerà l'utente in modo istantaneo al primo clic e richiederà la re-autenticazione nei clic successivi. Quando invii nuove email, genera nuovi token.
  • Scade il token in un ragionevole lasso di tempo, anche se non è mai stato utilizzato.
  • Consenti solo un token attivo per utente - insieme alla creazione del token one-time-use , questo assicura che più collegamenti non possano essere raccolti e utilizzati successivamente da un utente malintenzionato.
  • Rendi il token completamente imprevedibile - utilizza una lunga stringa generata casualmente, utilizzando una fonte sicura di entropia.
  • Comunicare la funzione all'utente - in modo che sappia di non condividerlo. Puoi anche consentire loro di disattivare la funzione.

Cose che non dovresti fare

  • Non persistere il token nell'URL come forma di autenticazione continua. L'utente finirà sicuramente per condividere l'URL con altri.
  • Non provare a generare token "casuali" tagliando l'indirizzo email dell'utente, non utilizzare neanche l'ora corrente o qualcosa di prevedibile come quello. Non è necessario essere intelligenti, basta usare un valore completamente casuale.
  • Non disponi di questa funzione su siti con account utente di grande valore, ad esempio servizi bancari o siti con informazioni private. Questo potrebbe essere sempre giustificato se non pensi ci sia un grosso costo associato agli account compromessi.
risposta data 23.12.2015 - 16:57
fonte

Leggi altre domande sui tag