web-dev-qa-db-fra.com

Comment puis-je implémenter de manière sécurisée une fonction de connexion sans mot de passe?

Vient de poster un nouveau plugin: No More Passwords

Je l'ai actuellement étiqueté en version bêta, car la connexion à une plate-forme est un problème sensible et je ne souhaite pas publier quelque chose qui pourrait comporter des failles de sécurité. Alors voici ma requête:

Est-ce sécurisé?

J'ai pris les mesures suivantes pour assurer la sécurité:

  1. Le nom d'utilisateur/mot de passe ne sont jamais passés, seulement le hachage unique.
  2. Le hachage est supprimé de la base de données une fois qu’il est utilisé. Les anciens hachages qui n’ont pas été utilisés ne peuvent l'être que si la base de données est piratée, mais vous avez alors des problèmes plus importants.
  3. Toutes les requêtes de base de données du hachage ont été échappées pour empêcher les attaques XSS.
  4. nonce ajouté à l'appel ajax.
  5. nonce et confirmation ajoutés à l'extrémité mobile pour empêcher une attaque CSRF.

Ici, j'ai une description complète de comment ça marche .

La prochaine version, j'espère implémenter oauth via Twitter, puisque iOS a maintenant fonctionné dans ...

Merci d'avance pour votre contribution.

Edit: J'ai décidé d'ajouter une vérification de sessionID pour m'assurer que le même navigateur se connecte que le navigateur qui a initié la connexion au code QR.

10
jackreichert

(Je suis une ventouse pour les schémas de connexion alternatifs)

Quelques énigmes concernant la fuite de DB:

  • Vous utilisez mysql_real_escape_string() directement. La méthode préférée consiste à utiliser $wpdb->prepare() ou esc_sql().

  • Les requêtes UPDATE sont mieux traitées par $wpdb->update()

5
scribu

Je pense que c'est une bonne idée mais comme toujours la plus grande faiblesse est le facteur humain, dans ce cas ce serait le téléphone lui-même perdu, volé ou intercepté Avez-vous pensé à ajouter une authentification à 2 couches, comme un code de vérification SMS (tel que gmail, etc.). Ou une alternative plus facile serait un cookie + un mot secret.

Aussi, pouvez-vous mentionner quel algorithme génère le code QR dans votre page à propos?

5
Wyck