Como posso implementar com segurança um recurso de login sem senha?

10

Apenas postou um novo plugin: No More senhas

Atualmente, tenho beta marcada porque fazer login em uma plataforma é um problema delicado e não quero liberar algo que possa ter brechas de segurança. Então aqui está minha consulta:

O is é seguro?

Eu fiz o seguinte para garantir a segurança:

  1. Nome de usuário / senha nunca são passados, apenas o único hash.
  2. O hash é removido do banco de dados depois que é usado, hashes antigos não foi usado, a menos que o banco de dados seja hackeado, mas você tem problemas maiores.
  3. Todas as consultas ao banco de dados do hash foram ignoradas para evitar XSS ataques.
  4. nonce adicionado à chamada ajax.
  5. nonce e confirmação adicionados ao dispositivo móvel para evitar ataques de CSRF.

Aqui eu tenho uma descrição completa do como funciona .

Próxima versão Espero implementar o oauth via twitter, já que o iOS agora funciona em ...

Obrigado pela sua contribuição antecipada.

Edit: Decidi que, como uma camada adicionada, eu adicionaria uma verificação de ID de sessão para ter certeza de que é o mesmo navegador que faz login como o navegador que iniciou o login do código QR.

    
por jackreichert 29.01.2012 / 23:01

2 respostas

5

(Sou um otário para esquemas alternativos de login)

Alguns detalhes sobre o escape de DB:

  • Você usa mysql_real_escape_string() diretamente. O método preferido é usar $wpdb->prepare() ou esc_sql() .

  • As consultas de UPDATE são mais bem gerenciadas por $wpdb->update()

por scribu 29.01.2012 / 23:53
5

Eu acho que é uma ótima idéia, mas como sempre a maior fraqueza é o fator humano, neste caso seria o próprio telefone sendo perdido, roubado ou interceptado. Você já pensou em adicionar autenticação de duas camadas, como um código de verificação por SMS (como o Gmail, etc). Ou uma alternativa mais fácil seria um cookie + palavra secreta.

Você também pode mencionar qual algoritmo está gerando o código QR na sua página sobre?

    
por Wyck 30.01.2012 / 00:04