2

我想要一个用于登录的蛮力保护器,它将:

  1. 根据用户名阻止(最终添加 ip)
  2. 存储有关登录数据库失败的信息(用户名、密码、用户代理等)
  3. 锁定时会告诉用户他们被锁定了

我查看了以下应用程序:

  1. http://code.google.com/p/django-brutebuster/ 在 decorators.py 中,该方法在锁定时返回 None,因此用户会收到“请输入正确的用户名和密码。请注意,这两个字段都区分大小写”。我希望用户知道该帐户已被锁定。

  2. https://github.com/alexkuhl/django-failedloginblocker 在 decorators.py 中,该方法会引发异常,这意味着如果 debug=False,用户将看到 500 错误。

  3. http://code.google.com/p/django-axes/ 这不包括用户(有 ip 和用户代理)。在 decorators.py 中,我不确定如何获取用户名。另外,我担心尝试登录某人然后在帐户被锁定时将其注销的方法。我喜欢 #1 和 #2 的方法,他们首先检查帐户是否被锁定,然后再尝试登录。

对于#1 和#2,我考虑将错误添加到表单中,我发现这篇文章Django - 自定义身份验证后端中的错误消息说覆盖 django.contrib.auth.forms.AuthenticationForm 但我不确定如何合并应用程序中的新表格。

有没有人有关于编写一个可以做我想做的事情的蛮力保护器的建议?

4

0 回答 0