Jus*_*ill 3 python django django-rest-framework
“Django-Rest-Framework (DRF) Throttling”可以帮助防止暴力攻击和失败的登录尝试。
那么为什么我们需要使用“Django 轴”、“Django 防御者”、“django-ratelimit”或类似的组件?
提前致谢
DRF 提供的节流与身份验证非常不同,身份验证是 Django Axes 的重点。
在 DRF 中,您可以允许在给定时间段(比如一天)内访问您的资源(比如数据库)定义的次数(即 100 次数据库查找),因此它们被限制在该数量/时间段,这里是 100/日。在某些用例中,用户甚至不需要标识自己就可以使用您的服务,不涉及身份验证 - 在这里,您将用户系统的 IP 视为限制用户活动的关键。是的,您可以在 DRF 中将限制与身份验证结合使用,但其中一个不需要另一个。
而在 Axes 中,您主要关心的是让用户通过登录过程证明他的身份(身份验证)。您还可以指示 Axes 拒绝重复失败的用户进行身份验证的机会,即如果您在 10 次尝试中未能正确登录,您现在将被禁止在接下来的 5 分钟内登录。因此,通常未经身份验证的用户永远不会使用您的服务,并且重复的身份验证失败尝试将导致该 IP 被拒绝在很长一段时间内进行身份验证的机会。Axes 的重点往往是确定用户未能通过身份验证的原因以及他们通过何种方式获得了对系统的访问权限。例如,从 Axes 报告中,您可以使用从注册页面通过电子邮件发送给他们的链接来确定当天有多少用户登录。
此外,DRF 实际上是“常规 django”的附加组件,因此它的节流和身份验证是为其执行的 API 服务量身定制的。使用 API 的用户通常不太可能手动对 API 进行身份验证,而是使用某些令牌 (JWT,csrf) 。Django Axes 也是常规 django 的附加组件,通常通过验证用户来满足典型网站的需求。您可以在一个 django 平台上同时使用 DRF 和 Axes 这两种服务,它们可以很好地协同工作并且不会发生冲突。
| 归档时间: |
|
| 查看次数: |
879 次 |
| 最近记录: |