Je développe une page Web où les gens peuvent écrire et commenter des choses (aucune information personnelle requise) et j'ai besoin de mettre un formulaire de connexion pour que les utilisateurs puissent voir toutes leurs actions sur ma page Web. Mon idée est de programmer un formulaire de connexion sans SSL et de permettre également aux gens de se connecter avec Facebook s'ils le souhaitent. La page ne se chargera complètement que si JavaScript est activé.
-
Mon premier problème est de m'assurer que personne ne peut voler les informations d'identification de l'utilisateur en agissant comme un homme au milieu. J'ai pensé à le résoudre avec un premier hachage côté client avec JavaScript puis côté serveur, si je reçois des valeurs hachées (au cas où quelqu'un supprime du JavaScript), un deuxième hachage et stocker ces valeurs hachées dans la base de données utilisateur. Est-ce un moyen sûr de le mettre en œuvre? De plus, y a-t-il des chances que certaines données soient perdues? Si oui, comment puis-je savoir si les données reçues ne sont pas compromises?
-
Protégez-vous des attaques par dictionnaire et par force brute. Je le résoudrais en comptant le nombre de tentatives de connexion infructueuses associées à ce compte d'utilisateur et s'il est supérieur à 8-10 consécutifs, afficher un CAPTCHA à chacune des connexions suivantes et également mettre en œuvre un délai entre les tentatives de connexion successives . Je pense que de cette manière, les changements d'IP ne seront pas un problème car je compte le nombre d'échecs de connexion côté serveur (je définirais une variable utilisateur en PHP).
-
Le formulaire de connexion. Je l'ai implémenté de cette manière (sans le hachage pour l'instant):
<input id = "username" name = "userName" placeholder = "Username" type = "text" ><input id = "password "name =" pass "placeholder =" Password "type =" password ">
Mais quand le formulaire est envoyé sur l'URL je peux lire le mot de passe comme: /LogIn.php?userName = user&pass = pass Comment puis-je masquer le mot de passe?
Quels pourraient être d'autres bons conseils, pour obtenir autant de sécurité que possible sans utiliser SSL?