I agree to David, it is much better to do this at a server level instead of application level. If you want your app to take care of it, i think django-axes is the best solution, you'll just need to customize a few bits according to your needs. Even django-lockout<http://pypi.python.org/pypi/django-lockout/0.1.0>is worth having a look.
On Fri, Aug 31, 2012 at 5:45 AM, David Fischer <djfis...@gmail.com> wrote: > This has definitely been discussed before[1], but I think it is worth > discussing again. This issue has become even more pressing since the > password hashing algorithm has increased its computational complexity > significantly in 1.4. Because of that increased CPU utilization, a denial > of service (DoS) attack should be a lot easier and more devastating. > > With that said, there are a number of implications. Sometimes locking out > users is not desirable since it opens a user up to DoS -- especially if > some of the usernames are public. Also, this sort of thing is handled much > more efficiently at the web server level as opposed to the application > level. Your production web server probably has a good way to throttle > requests. The Django security docs[2] mention this. > > I'm +1 about getting some sort of throttler into core (or contrib rather), > but I think this type of thing needs to be very tunable since different > people will have wildly different requirements. A sprint at Djangocon maybe? > > > [1] > https://groups.google.com/d/topic/django-developers/cYd-8C-3wFQ/discussion > [2] https://docs.djangoproject.com/en/1.4/topics/security/#id1 > > > On Thursday, August 30, 2012 8:39:26 AM UTC-7, brian wrote: >> >> I want a brute force protector for logins that will: >> >> 1. >> >> block based on username(eventually add ip) >> 2. >> >> store info about failed login to db(username, pwd, user-agent, etc) >> 3. >> >> When locked will tell user that they are locked out >> >> I looked at the following apps: >> >> 1. >> >> >> http://code.google.com/p/**django-brutebuster/<http://code.google.com/p/django-brutebuster/>In >> decorators.py the method returns None when locked so the user gets the >> “Please enter a correct username and password. Note that both fields are >> case-sensitive”. I want the user to know the account is locked out. >> 2. >> >> >> https://github.com/alexkuhl/**django-failedloginblocker<https://github.com/alexkuhl/django-failedloginblocker>In >> decorators.py the method raises an exception which means if debug=False >> the user will see a 500 error. >> 3. >> >> >> http://code.google.com/p/**django-axes/<http://code.google.com/p/django-axes/>This >> doesn't include the user (has ip and user-agent). In decorators.py I'm >> not sure how to get the user name. Also I'm concerned about the approach >> of >> trying to log someone in and then logging them out if the account is >> locked. I like the approaches of #1 and #2 where they first check if the >> account is locked before trying to log them in. >> >> For #1 and #2 I looked into adding the error to the form and I found this >> post Django - Error Message in Custom Auth >> Backend<http://stackoverflow.com/questions/5523928/django-error-message-in-custom-auth-backend>that >> says overwrite django.contrib.auth.forms. >> **AuthenticationForm but I'm not sure how to incorporate the new form in >> the apps. >> >> Does anyone have suggestions about writing a brute force protector that >> will do the things I want? >> >> >> >> I posted this on >> stackoverflow<http://stackoverflow.com/questions/12135422/django-brute-force-protection>but >> didn't get a response. >> >> >> >> Brian >> >> -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/django-users/-/UxXiAVZKxe0J. > > To post to this group, send email to django-users@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > -- Thanks & Regards ---------------------------- Amyth [Admin - Techstricks] Email - aroras.offic...@gmail.com, ad...@techstricks.com Twitter - @a_myth_________ http://techstricks.com/ -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.