¿Cómo puedo implementar de manera segura una función de inicio de sesión sin contraseña?

10

Acaba de publicar un nuevo complemento: No más contraseñas

Actualmente lo tengo etiquetado como beta porque el inicio de sesión en una plataforma es un problema delicado y no quiero lanzar algo que pueda tener agujeros de seguridad. Así que aquí está mi consulta:

¿Es seguro?

He hecho lo siguiente para garantizar la seguridad:

  1. El nombre de usuario / contraseña nunca se pasa de un lado a otro, solo el único hash.
  2. El hash se elimina de la base de datos una vez que se usa, los hashes antiguos que no se ha utilizado no puede ser a menos que la base de datos sea hackeada, pero luego tienes problemas más grandes.
  3. Todas las consultas de la base de datos del hash se han escapado para evitar XSS los ataques.
  4. nonce agregado a la llamada ajax.
  5. se agregó la confirmación y la confirmación en el extremo móvil para evitar el ataque CSRF.

Aquí tengo una descripción completa de cómo funciona .

Próxima versión, espero implementar auth a través de twitter, ya que iOS ahora ha funcionado en ...

Gracias por tu aportación por adelantado.

Editar: decidí que, como una capa adicional, agregaría una verificación de ID de sesión para asegurarme de que es el mismo navegador que inició sesión en el navegador que inició el inicio de sesión del código QR.

    
pregunta jackreichert 29.01.2012 - 23:01

2 respuestas

5

(soy un imbécil para esquemas de inicio de sesión alternativos)

Algunos problemas con el escape de DB:

  • Usted usa mysql_real_escape_string() directamente. El método preferido es usar $wpdb->prepare() o esc_sql() .

  • Las consultas de ACTUALIZACIÓN se manejan mejor con $wpdb->update()

respondido por el scribu 29.01.2012 - 23:53
5

Creo que es una gran idea, pero como siempre, la mayor debilidad es el factor humano, en este caso sería la pérdida, el robo o la intercepción del teléfono. ¿Ha pensado en agregar autenticación de 2 capas, como un código de verificación de SMS (como gmail, etc.)? O una alternativa más fácil sería una cookie + palabra secreta.

¿También puedes mencionar qué algoritmo está generando el código QR en tu página acerca de?

    
respondido por el Wyck 30.01.2012 - 00:04

Lea otras preguntas en las etiquetas