D'abord, limiter la vitesse de la page de connexion par IP.Utilisez un invisible captcha system sur la page de connexion. Vous devez ensuite définir des limites de connexion par adresse IP, mais vous devez également définir des limites de connexion par utilisateur en dernier recours pour empêcher les botnets de forcer la brutalité à partir de plusieurs adresses IP. Envoyer un e-mail à l'utilisateur si une tentative de force brute leur mot de passe est détectée. N'envoyez pas d'hordes d'e-mails répétés si quelqu'un essaie d'un tas d'adresses IP différentes. Dans le cas contraire, un botnet pourrait faire du spamming, et pire, un message important finirait dans le dossier spam. Assurez-vous de mentionner qu'ils pourraient vouloir changer leur mot de passe, et/ou améliorer sa force.
Si vous définissez des limites de connexion IP, augmentez les limites. Beaucoup d'endroits utilisent trois grèves et vous êtes absent. C'est fou et user-hostile. Il devrait être au moins dix ou plus réaliste, et quand vous le frappez, vous devriez obtenir une interdiction basée sur le temps plutôt que d'une interdiction de "Call Customer Support". Personne ne va forcer un mot de passe en dix tentatives. Je recommande donc une limite de connexion par IP de 10 et une limite de connexion par utilisateur comprise entre 1 000 et 10 000 (assez élevée pour contrecarrer les attaques par déni de service, mais suffisamment faible pour qu'un botnet ait probablement déjà piraté le mot de passe) . Vous devriez avoir une certaine forme d'alerte sur le pagette sysadmin/on-call qu'il y a un botnet au travail qui se déclenche bien avant que vous n'atteigniez ce seuil. (Notez le nombre de tentatives d'ouverture de session échouées pour tous les utilisateurs et utilisateurs individuels, faites une moyenne mobile et alertez si l'un des seuils franchit l'un des seuils.) N'oubliez pas que si une personne possède une liste d'utilisateurs suffisamment importante, base d'utilisateurs est à peu près la même que la probabilité de réussir en attaquant un seul compte.)
Bloquez les attaquants évidents sur le pare-feu. Expirer les interdictions après un certain temps. Assurez-vous de faire en sorte que le soutien à la clientèle puisse libérer quelqu'un, mais assurez-vous que l'interdiction est en quelque sorte liée à l'infraction. Vous ne devriez pas désarmer quelqu'un qui a tenté de casser vingt connexions d'utilisateur différentes ou quelque chose. Jugement ici bien sûr, parce que les script kiddies avec les membres de la famille et les grand-mères qui n'ont pas été en faute qui ont été pris en charge par les botnets peuvent certainement réussir à se faire interdire la propriété intellectuelle.
Si vous avez réellement le temps de faire tout cela, vous aurez un formulaire de connexion de premier ordre. Je doute que tu aies besoin de ça.
"Par IP" est la clé ici. Sans cela, vous avez lancé une attaque par déni de service trivial contre les utilisateurs. –
il y a aussi un concept: http://github.com/plataformatec/devise/ – Mike
Le lien authlogic est faux. Doit être http://github.com/binarylogic/authlogic – Jim