J'essaie de sécuriser mon application 3 rails contre la connexion brutale deviner. J'utilise authlogic. Quelle est la meilleure façon de forcer un utilisateur (ou un bot) à remplir un captcha après un nombre spécifique de tentatives de connexion échouées? Est-ce que authlogic a un mécanisme intégré pour enregistrer combien de tentatives infructueuses consécutives sont venues de la même ip? J'apprécierais toute aide.Comment puis-je forcer l'utilisateur à remplir un captcha après un nombre spécifique d'échecs de connexion avec authlogic?
Répondre
Authlogic a une Authlogic :: Session :: BruteForceProtection Module (vous pouvez trouver comment il est mis en œuvre here). Fondamentalement, il bloque un compte après N connexions infructueuses. De son documentation:
Par défaut, l'option de configuration de consecutive_failed_logins_limit est réglé sur 50, si quelqu'un ne consécutivement à se connecter après 50 tentatives de leur compte sera suspendue. C'est un numéro très libéral et à ce stade, il devrait être évident que quelque chose ne va pas. Si vous souhaitez réduire ce nombre juste définir la configuration à un nombre inférieur:
class UserSession < Authlogic::Session::Base
consecutive_failed_logins_limit 10
end
Pour activer ce champ votre modèle DOIT avoir un failed_login_count champ (entier).
Vous pouvez activer ce module et ajouter votre mécanisme captcha dans le contrôleur.
Éditer plus tard: Je viens de voir la partie 'De la même IP'.
Si vous avez besoin d'une protection 'du même IP' (je suppose que vous voulez dire que l'attaquant n'est pas intéressé par un compte particulier, donc le but n'est pas de casser un compte particulier, mais dans mon opinion qu'il ne devrait pas être fait à ce niveau (rails serveur d'application). Cela devrait être géré par votre administrateur système, sur le serveur frontal (proxy).
- 1. Comment remplir une colonne avec un nombre de chiffres?
- 2. Comment forcer PHP à sortir un nombre précédé de zéros?
- 3. Affichage d'une fenêtre Captcha après l'échec de la connexion
- 4. Comment forcer Java/awt à utiliser un toolkit spécifique (qt)?
- 5. Problèmes avec un captcha simple
- 6. comment remplir deux fois correctement DataSet (après un jeu vide)
- 7. Imprimer des flottants avec un nombre spécifique de zéros
- 8. Comment tester un formulaire avec un champ captcha dans django?
- 9. Comment remplir UIPickerView avec un fichier .plist?
- 10. Remplir un FlowLayoutPanel avec un grand nombre de contrôles et peindre des miniatures à la demande
- 11. forcer Excel à afficher un nombre négatif que (0 000 $)
- 12. Flex: Forcer un tableau à contenir uniquement une classe spécifique?
- 13. Restauration à un moment spécifique avec PostgreSQL
- 14. Comment remplir un NSMutableArray avec UILabels?
- 15. Division après un certain nombre de caractères
- 16. Simple Authlogic Question: Connexion JSON?
- 17. Comment puis-je remplir un UIViewController après son chargement?
- 18. Dans ANTLR, comment spécifiez-vous un nombre spécifique de répétitions?
- 19. Comment forcer une connexion à un périphérique Bluetooth a2dp par une activité ou un service
- 20. Rails: Authlogic a échoué l'URL de connexion?
- 21. Comment puis-je forcer la connexion à une adresse IP spécifique
- 22. Mise à jour des utilisateurs existants avec un Authlogic single_access_token
- 23. Comment forcer PHP pour traiter un certain nombre comme un uint
- 24. Ecriture view_spec pour le formulaire de connexion avec authlogic (rspec2)
- 25. Problème avec la connexion automatique dans le sous-domaine après l'inscription - Rails 3, Authlogic, Subdomain-fu
- 26. Dans Silverlight, comment remplir un DataGrid trié à partir d'une connexion à changement dynamique
- 27. Remplir un formulaire avec C#
- 28. Authlogic avec facebook connect
- 29. Comment "remplir" un GridViewColumn avec ComboBox (WPF)?
- 30. Possibilité d'authentification avec un site Web avec POST/Télécharger CAPTCHA
Remarque: Vous devrez toujours indiquer à votre serveur d'applications que la connexion a échoué, non? Ma seule suggestion est d'invoquer 'being_brute_force_protected?' Lorsque vous essayez de vous connecter manuellement. Si la valeur est true, alors rendre le capcha, définir la limite à 3 tentatives, et le temps de verrouillage pour 1 milliseconde. –