速率限制 (Open Source)

DefectDojo 内置了登录页面速率限制功能,以防范暴力破解攻击,该功能由 Django Ratelimit 提供支持。

Configuration

速率限制通过以下设置进行配置(有关如何应用这些设置,请参阅配置):

DD_RATE_LIMITER_ENABLED=(bool, True),
DD_RATE_LIMITER_RATE=(str, '5/m'),
DD_RATE_LIMITER_BLOCK=(bool, True),
DD_RATE_LIMITER_ACCOUNT_LOCKOUT=(bool, True),

Rate Limit (DD_RATE_LIMITER_RATE)

设置限制请求频率的方式。支持的单位有:

  • 秒:1s
  • 分钟:5m
  • 小时:100h
  • 天:2400d

有关更多配置选项,请参阅 Django Ratelimit rates 文档

Block Requests (DD_RATE_LIMITER_BLOCK)

默认情况下,速率限制只会记录违规行为,而不会阻止请求。将 DD_RATE_LIMITER_BLOCK 设置为 True 后,一旦超过所配置的速率,就会主动阻止所有传入请求。

Account Lockout (DD_RATE_LIMITER_ACCOUNT_LOCKOUT)

启用后,若某个用户的登录尝试触发了速率限制,该用户必须重置密码才能再次登录。这可以降低在暴力破解攻击期间凭据被攻破的风险。

Multi-Process Behaviour

在运行多个 uwsgi 进程时,该速率限制软件包使用的是每个进程本地的基于内存的缓存。在此默认配置下,速率限制计数器不会跨进程共享。