Come posso implementare in modo sicuro una funzione di accesso senza password?


10

Ho appena pubblicato un nuovo plug-in: niente più password

Al momento l'ho taggato beta perché l'accesso a una piattaforma è un problema delicato e non voglio rilasciare qualcosa che potrebbe avere falle di sicurezza. Quindi ecco la mia domanda:

È sicuro?

Ho fatto quanto segue per garantire la sicurezza:

  1. Nome utente / password non vengono mai passati avanti e indietro, solo l'hash univoco.
  2. L'hash viene rimosso dal database una volta utilizzato, i vecchi hash che non sono stati utilizzati non possono esserlo a meno che il database non sia stato violato, ma quindi si hanno problemi più grandi.
  3. Tutte le query del database dell'hash sono state evase per prevenire attacchi XSS.
  4. nonce aggiunto alla chiamata Ajax.
  5. nonce e conferma aggiunti all'estremità mobile per prevenire l'attacco CSRF.

Qui ho una descrizione completa di come funziona .

La prossima versione spero di implementare oauth via Twitter, poiché iOS ora ha funzionato in ...

Grazie per il tuo contributo in anticipo.

Modifica: ho deciso che come livello aggiunto avrei aggiunto un controllo sessionID per assicurarmi che fosse lo stesso login del browser che ha avviato l'accesso al codice QR.

Risposte:


5

(Sono un fanatico di schemi di accesso alternativi)

Qualche nitpicking in merito all'evasione del DB:

  • Usi mysql_real_escape_string()direttamente. Il metodo preferito sta usando $wpdb->prepare()o esc_sql().

  • Le query UPDATE sono gestite al meglio da $wpdb->update()


Ho aggiornato il plugin per includerlo. Grazie per il consiglio.
jackreichert,

5

Penso che sia una grande idea, ma come sempre la più grande debolezza è il fattore umano, in questo caso sarebbe il telefono stesso a essere perso, rubato o intercettato. Hai pensato di aggiungere l'autenticazione a 2 livelli, come un codice di verifica SMS (come gmail, ecc.). Oppure un'alternativa più semplice sarebbe un cookie + una parola segreta.

Puoi anche menzionare quale algoritmo sta generando il codice QR nella tua pagina about?


Quindi il plugin si basa sul fatto che tu abbia effettuato l'accesso sul tuo telefono per funzionare. Il rischio per la sicurezza di perdere il telefono è quasi lo stesso che lasciare il PC collegato al tuo sito Web. Sto usando l'API grafico di Google per generare il codice QR.
jackreichert,

3
Ho solo pensato che sarebbe una buona idea aggiungere un altro livello che non ostacolerebbe l'utente, dal momento che i telefoni vengono rubati / persi molto più di quelli del PC e su un PC dovresti comunque conoscere il nome utente / la password.
Wyck,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.