在Django中限制暴力登录攻击

时间:2012-07-13 19:26:20

标签: python django security brute-force

是否普遍接受保护Django应用程序免受此类攻击的策略?

5 个答案:

答案 0 :(得分:23)

django-axes是一个用于检测失败登录尝试的现有应用。还有一个更通用的django-ratelimit

答案 1 :(得分:5)

你可以:

  • 跟踪失败的登录尝试,并在3次尝试后阻止攻击者。
  • 如果您不想阻止,那么您可以登录并提供验证码以使其在未来的尝试中更加困难。
  • 您还可以在尝试缓存失败后增加登录尝试之间的时间。例如,10秒,30秒,1分钟,5分钟等。这会很快破坏攻击者的乐趣。
  • 当然,选择一个安全密码就可以让攻击者猜测。

答案 2 :(得分:2)

我更喜欢django-defender。它以django-axes fork开头,redis作为后端存储失败登录尝试,阻止用户,IP,因此它比django-axes快得多。

答案 3 :(得分:2)

有很多可用的库,比如 Django-axes Django-defender Django-ratelimit ,这些库都提到了同样的事情(他们之间有一些差异)。您可以选择最适合您需求的那个。

如果您正在使用DRF,那么您不需要额外的库(轴,速率限制等),因为DRF已经内置了限制功能。

您可以查看此问题:**How to prevent brute force attack in Django Rest + Using Django Rest Throttling **

答案 4 :(得分:0)

这个问题是在大约7年前提出的,也许最近的一些信息可能会有所帮助。

实施Google reCAPTCHA v3可能比盲目地限制所有流量要好。它可以判断是否有人在敲击密码,并会相应地阻止它们。如果某人看起来像人,但只是输入了错误的密码,则不会很快阻止他们。 Google比我们中的任何一个人都更了解www,因此最好利用它。

相关问题