跳转到主要内容

跟踪Django网站上的失败登录尝试。

项目描述

django-axes

Jazzband GitHub PyPI release Supported Python versions Supported Django versions Documentation GitHub Actions Coverage

Axes 是一个 Django 插件,用于监控基于 Django 的网站可疑登录尝试,并实现简单的暴力破解攻击阻止。

这个名称有点像一个极客式的双关语,因为它可以被解释为

  • access,即在监控访问尝试时,或者

  • axes,即你可以用来破解的工具(通常用于木头)。

功能

Axes 记录 Django 网站的登录尝试,并在超过配置的尝试限制时阻止攻击者进一步尝试登录你的网站。

Axes 可以跟踪尝试并将其无限期地保存在数据库中,或者使用快速且对 DDoS 免疫的缓存实现。

Axes 可以配置为通过 IP 地址、用户名、用户代理或它们的组合来监控登录尝试。

Axes 支持冷却期、IP 地址允许列表和阻止列表、用户账户允许列表以及其他 Django 访问管理功能。

文档

有关安装和配置的更多信息,请参阅以下文档:

https://django-axes.readthedocs.io/

问题

如果你有疑问或在使用应用程序时遇到麻烦,请在该处提交错误报告:

https://github.com/jazzband/django-axes/issues

贡献

请参阅 CONTRIBUTING

更改

7.0.0 (2024-10-02)

6.5.2 (2024-09-21)

  • 添加对 Django 5.1 的测试矩阵支持。

  • 放弃对 EOL Django 3.2 的支持。

  • 放弃对 PyPy 3.10 的支持。

6.5.1 (2024-07-01)

  • 使 0007_alter_accessattempt_unique_together.py 迁移向后兼容。[hirotasoshu]

6.5.0 (2024-06-11)

  • 将会话哈希添加到访问日志。[sevdog]

6.4.0 (2024-03-04)

  • 添加对 Python 3.12 和 Django 5.0 的支持,放弃对 Django 4.1 的支持。[aleksihakli]

6.3.1 (2024-03-04)

  • 放弃对 setuptoolspkg_resources 依赖项的支持。[Viicos]

6.3.0 (2023-12-27)

  • 添加中间件的异步支持。[Taikono-Himazin]

6.2.0 (2023-12-08)

  • 更新文档。[funkybob]

  • 添加新的管理命令 axes_reset_ip_username。[p-l-]

  • 添加法语翻译。[laulaz]

  • 避免在错误的数据库上运行数据迁移。[christianbundy]

6.1.1 (2023-08-01)

  • 当使用自定义数据库处理程序并针对 AccessAttemptAccessFailureLog 时修复 TransactionManagementError。[hirotasoshu]

6.1.0 (2023-07-30)

  • AXES_SENSITIVE_PARAMETERS 默认值设置为 ["username", "ip_address"],除了配置标志 AXES_PASSWORD_FORM_FIELD 之外。默认情况下,在将登录尝试的信息写入应用程序日志时,这会隐藏用户名和 IP 地址字段。通过在 Django 项目设置文件中将 AXES_SENSITIVE_PARAMETERS = [] 设置回旧配置的默认值。[GitRon]

  • 改善关于 GDPR 和隐私注释以及配置标志的文档。[GitRon]

6.0.5 (2023-07-01)

  • 添加印度尼西亚语翻译。[kiraware]

6.0.4 (2023-06-22)

  • 从 AxesStandaloneBackend 中删除未使用的方法。[314eter]

6.0.3 (2023-06-18)

  • 将用户名添加到管理字段集中。[sevdog]

6.0.2 (2023-06-13)

  • 添加 Django 系统检查以验证可调用导入路径设置。[iafisher]

  • 改善文档。[hirotasoshu]

  • 改善存储库问题和 PR 模板。[hirotasoshu]

6.0.1 (2023-05-17)

  • 调整 CI 管道和 RTD 构建需求。[aleksihakli]

6.0.0 (2023-05-17)

版本 6 是一个破坏性版本。请参阅文档以获取升级说明。

  • 弃用 Python 3.7 支持。[aleksihakli]

  • 弃用具有误导性命名的 is_admin_site API 调用。[hirotasoshu]

  • 添加 AXES_LOCKOUT_PARAMETERS 配置标志,该标志将覆盖 AXES_ONLY_USER_FAILURESAXES_LOCK_OUT_BY_COMBINATION_USER_AND_IPAXES_LOCK_OUT_BY_USER_OR_IPAXES_USE_USER_AGENT 配置。对于旧标志添加弃用警告。请参阅RTD上的项目文档以获取更新说明。[hirotasoshu]

  • 改进翻译。[hirotasoshu]

  • 使用Django cache.incr API进行原子缓存失败计数。[hirotasoshu, aleksihakli]

  • django-ipware 设置为可选依赖。例如,使用 pip install django-axes[ipware] 软件包和额外指定符安装它。[aleksihakli]

  • 弃用并重命名旧配置标志。旧标志将在版本 6.1 或之后被删除。[aleksihakli]
    • AXES_PROXY_ORDER 现在是 AXES_IPWARE_PROXY_ORDER

    • AXES_PROXY_COUNT 现在是 AXES_IPWARE_PROXY_COUNT

    • AXES_PROXY_TRUSTED_IPS 现在是 AXES_IPWARE_PROXY_TRUSTED_IPS,并且

    • AXES_META_PRECEDENCE_ORDER 现在是 AXES_IPWARE_META_PRECEDENCE_ORDER

  • 将429设置为默认锁定响应代码。[hirotasoshu]

5.41.1 (2023-04-16)

  • 修复数据库处理程序中敏感参数的记录。[stereodamage]

5.41.0 (2023-04-02)

  • 修复测试。[hirotasoshu]

  • 添加 AXES_CLIENT_CALLABLE 设置。[hirotasoshu]

  • 更新Python、Django和软件包版本。[hramezani]

5.40.1 (2022-11-24)

  • 修复用户代理请求阻止中的错误。[PetrDlouhy]

5.40.0 (2022-11-19)

  • 更新软件包和检查器以支持新版本。[hramezani]

  • 更新文档链接。[Arhell]

  • 对于Python 3.8+,使用importlib而不是setuptools。[jedie]

  • 支持Python 3.11。[joshuadavidthomas]

  • 改进文档。[nsht]

  • 改进文档。[timgates42]

5.39.0 (2022-08-18)

  • 在测试中使用新的后端类来修复假阴性系统检查警告。[simonkern]

5.38.0 (2022-08-16)

  • 调整变更日志,以确保在PyPy和发布软件包上正确显示发行说明。[aleksihakli]

5.37.0 (2022-08-16)

  • 添加Django 4.1支持。PyPy 3.8与Django 4.1存在已知问题,因此予以豁免。[hramezani]

5.36.0 (2022-07-17)

  • 添加无需 ModelBackend 依赖的 AxesStandaloneBackend。[jcgiuffrida]

5.35.0 (2022-06-01)

  • 添加阿拉伯语翻译。[YDA93]

5.34.0 (2022-05-28)

  • 改进德语翻译。[GitRon]

5.33.0 (2022-05-16)

  • 将MD5缓存密钥摘要迁移到SHA256。[aleksihakli]

  • 改进并简化启动日志。[ShaheedHaque]

  • 改进模块类型。[hramezani]

  • AXES_COOLOFF_TIME 添加对浮点数或部分小时的支撑。[hramezani]

5.32.0 (2022-04-08)

  • 添加对持久失败记录的支持,其中失败的登录尝试将保留在数据库中,直到达到特定阈值。[p1-gdd]

  • 添加在锁定冷却期内用户尝试登录时不会重置登录时间的支持。[antoine-42]

5.31.0 (2022-01-08)

  • 调整Python和其它软件包版本的版本说明,将软件包最低Python版本设置为3.7。放宽 django-ipware 版本要求以允许更高版本。[aleksihakli]

5.30.0 (2022-01-08)

  • 修复5.29.0版本中的软件包构建错误,以允许发布。[aleksihakli]

5.29.0 (2022-01-08)

  • 放弃对Python 3.6的支持。[aleksihakli]

5.28.0 (2021-12-14)

  • 放弃对Django < 3.2的支持。[hramezani]

  • 将Django 4.0添加到测试矩阵。[hramezani]

5.27.0 (2021-11-04)

  • 由于setuptools不是运行时依赖项,修复了运行时由于 pkg_resources 缺失导致的软件包版本解析错误。[asherf]

  • 添加对Python 3.10和Django 3.2的支持。[hramezani]

5.26.0 (2021-10-11)

  • 修复当用户被锁定时,Axes中间件的锁定响应中 AXES_USERNAME_CALLABLE 没有收到 credentials 属性的问题。[rootart]

5.25.0 (2021-09-19)

  • 修复由于更新后的数据库模型 unique_together 约束和数据和模式迁移导致的重复的 AccessAttempts。[PetrDlouhy]

5.24.0 (2021-09-09)

  • 在数据库处理程序中使用原子事务更新 AccessAttempts。[okapies]

5.23.0 (2021-09-02)

  • request 作为参数传递给 AXES_CLIENT_STR_CALLABLE。[sarahboyce]

5.22.0 (2021-08-31)

  • 通过将计数器的增加从非原子的Python代码调用移动到原子的数据库函数,改进failures_since_start的处理。[okapies]

  • 添加公开可用的request.axes_failures_since_start属性。[okapies]

5.21.0 (2021-08-19)

  • 通过新的AXES_HTTP_RESPONSE_CODE设置添加可配置的锁定HTTP状态码响应。[phil-bell]

5.20.0 (2021-06-29)

  • 通过使用get_or_create进行访问尝试获取和更新,改进例如在多进程环境中的竞态条件处理。[uli-klank]

5.19.0 (2021-06-16)

  • 添加波兰语本地化。[Quadric]

5.18.0 (2021-06-09)

  • 修复default_auto_field警告。[zkanda]

5.17.0 (2021-06-05)

  • 修复default_app_config弃用。Django 3.2自动检测AppConfig,因此此设置不再需要。[nikolaik]

5.16.0 (2021-05-19)

  • 添加AXES_CLIENT_STR_CALLABLE设置。[smtydn]

5.15.0 (2021-05-03)

  • 通过AXES_SENSITIVE_PARAMETERS设置添加在数据库处理器中清洗敏感GET和POST参数的选项。[mcoconnor]

5.14.0 (2021-04-06)

  • 改进锁定消息和翻译的消息格式。[ashokdelphia]

  • 移除对Django 3.0的支持。[hramezani]

  • 添加对Django 3.2的支持。[hramezani]

5.13.1 (2021-02-22)

  • 将默认的AXES_VERBOSE设置为AXES_ENABLED配置设置,当Axes本身被禁用时禁用详细的启动日志。[christianbundy]

  • 更新文档。[KStenK]

5.13.0 (2021-02-15)

  • 添加使用缓存后端重置尝试的支持。[nattyg93]

5.12.0 (2021-01-07)

  • 清理测试结构并将测试迁移到主包外部以创建更小的wheel分发。[aleksihakli]

  • 将配置移动到pyproject.toml以实现更清晰的布局。[aleksihakli]

  • 清理测试设置覆盖配置。[hramezani]

5.11.1 (2021-01-06)

  • 修复为None用户名创建缓存条目的问题。[cabarnes]

5.11.0 (2021-01-05)

  • 通过AXES_ALLOWED_CORS_ORIGINS配置标志添加锁定视图CORS支持。[vladox]

  • axes.decorators.axes_dispatch添加缺失的@wraps装饰器。[aleksihakli]

5.10.1 (2021-01-04)

  • DEFAULT_AUTO_FIELD添加到测试设置。[hramezani]

  • 修复文档语言。[danielquinn]

  • 修复Python包版本说明符并删除冗余导入。[aleksihakli]

5.10.0 (2020-12-18)

  • 从5.8.0弃用内置DRF支持,要求用户按项目设置。请参阅文档以获取更多信息。[aleksihakli]

5.9.1 (2020-12-02)

  • 将测试迁移到GitHub Actions。[jezdez]

  • 修复当AXES_ENABLEDFalse时在中间件中运行Axes代码的问题。[ashokdelphia]

5.9.0 (2020-11-05)

  • 添加对Python 3.9的支持。[hramezani]

  • 当用户名未设置且未设置AXES_ONLY_USER_FAILURES设置时,通过数据库处理器防止创建AccessAttempt。[hramezani]

5.8.0 (2020-10-16)

  • 改进Django REST Framework (DRF)集成。[Anatoly]

5.7.1 (2020-09-27)

  • 调整设置导入和处理链以实现更干净的模块导入和调用顺序。[aleksihakli]

  • 调整AXES_ENABLED标志的使用,以便始终以相同的方式进行导入,并无论设置如何都记录初始日志,它仅影响用toggleable装饰或包装的代码。[alekshakli]

5.7.0 (2020-09-26)

  • 弃用AXES_LOGGER Axes设置,并移动到基于__name__的日志记录和完全限定的Python模块名日志标识符。[aleksihakli]

5.6.2 (2020-09-20)

  • 修复axes_reset_user管理命令中的回归问题。[aleksihakli]

5.6.1 (2020-09-17)

  • 改进测试依赖关系管理和升级black代码格式化器。[smithdc1]

5.6.0 (2020-09-12)

  • 通过pytest-subtests包添加适当的开发subTest支持。[smithdc1]

  • 弃用django-appconf并使用纯设置来配置Axes。[aleksihakli]

5.5.2 (2020-09-11)

  • 更新弃用request.is_ajax方法的用法。[smithdc1]

5.5.1 (2020-09-10)

  • 更新已弃用的Django模块和成员的使用。 [smithdc1]

5.5.0 (2020-08-21)

  • 添加基于用户名或IP地址进行锁定请求的支持,使用LOCK_OUT_BY_USER_OR_IP标志。 [PetrDlouhy]

  • 为Django 3.1支持弃用信号providing_args。 [coredumperror]

5.4.3 (2020-08-06)

  • 添加Django 3.1支持。 [hramezani]

5.4.2 (2020-07-28)

  • 为处理器添加ABC或抽象基类实现。 [jorlugaqui]

5.4.1 (2020-07-03)

  • 修复代码风格以符合linters。 [aleksihakli]

5.4.0 (2020-07-03)

  • 将用户名传播到URL参数中的锁定视图。 [PetrDlouhy]

  • 更新CAPTCHA示例。 [PetrDlouhy]

  • 升级django-ipware到版本3。 [hramezani,mnislam01]

5.3.5 (2020-07-02)

  • 限制ipware版本以确保版本兼容性。 [aleksihakli]

5.3.4 (2020-06-09)

  • 弃用Django 1.11 LTS支持。 [aleksihakli]

5.3.3 (2020-05-22)

  • 修复在URL配置中未定义默认admin站点时AXES_ONLY_ADMIN_SITE功能。 [igor-shevchenko]

5.3.2 (2020-05-15)

  • 修复Fargate的AppConf设置前缀问题。 [marksweb]

5.3.1 (2020-03-23)

  • 修复ORM中的null byte ValueError错误。 [ddimmich]

5.3.0 (2020-03-10)

  • 提高Django REST Framework兼容性。 [I0x4dI]

5.2.2 (2020-01-08)

  • 添加axes.handlers.proxy.AxesProxyHandler.get_failures缺失的代理实现。 [aleksihakli]

5.2.1 (2020-01-08)

  • 添加django-reversion兼容性说明。 [mark-mishyn]

  • 添加可插拔的锁定响应和AXES_LOCKOUT_CALLABLE配置标志。 [aleksihakli]

5.2.0 (2020-01-01)

  • 添加测试处理器。 [aidanlister]

5.1.0 (2019-12-29)

  • 添加可插拔的用户账户白名单和AXES_WHITELIST_CALLABLE配置标志。 [aleksihakli]

5.0.20 (2019-12-01)

  • 修复django-allauth兼容性问题。 [hramezani]

  • 改进登录尝试监控的测试。 [hramezani]

  • 添加反向代理文档。 [ckcollab]

  • 更新OAuth文档示例。 [aleksihakli]

5.0.19 (2019-11-06)

  • 优化数据库处理器中的访问尝试获取。 [hramezani]

  • 优化代理处理器中的请求数据获取。 [hramezani]

5.0.18 (2019-10-17)

  • cooloff_timedelta上下文变量添加到锁定响应中。 [jstockwin]

5.0.17 (2019-10-15)

  • 对用户输入进行更安全的字符串格式化。 [aleksihakli]

5.0.16 (2019-10-15)

  • 修复日志中的字符串格式化错误。 [zerolab]

5.0.15 (2019-10-09)

  • 添加AXES_ENABLE_ADMIN标志。 [flannelhead]

5.0.14 (2019-09-28)

  • 文档、CI流水线和代码格式化改进 [aleksihakli]

5.0.13 (2019-08-30)

  • 支持Python 3.8和PyPy。 [aleksihakli]

  • 迁移到setuptools_scm和自动版本化。 [aleksihakli]

5.0.12 (2019-08-05)

  • 支持AXES_COOLOFF_TIME设置的callables。 [DariaPlotnikova]

5.0.11 (2019-07-25)

  • 修复rST格式化中的拼写错误,该错误阻止了5.0.10版本发布到PyPI。 [aleksihakli]

5.0.10 (2019-07-25)

  • 重构axes.helpers.get_client_cache_key的类型检查以适应框架兼容性,修复#471。 [aleksihakli]

5.0.9 (2019-07-11)

  • 通过将它们移动到处理器中来改进尝试和日志重置的处理,允许自定义和更大的可配置性。未实现的处理器默认引发NotImplementedError。 [aleksihakli]

  • 将Python 3.8开发版本和PyPy添加到Travis测试矩阵中。 [aleksihakli]

5.0.8 (2019-07-09)

  • 添加仅运行Axes在admin站点上的AXES_ONLY_ADMIN_SITE标志。 [hramezani]

  • 添加axes_reset_logs命令以删除旧的AccessLog记录。 [tlebrize]

  • 允许AxesBackend子类传递axes.W003系统检查。 [adamchainz]

5.0.7 (2019-06-14)

  • 修复当禁用AXES_LOCK_OUT_AT_FAILURE设置时显示锁定消息。 [mogzol]

  • 添加对可调用AXES_FAILURE_LIMIT设置的支持。 [bbayles]

5.0.6 (2019-05-25)

  • 弃用AXES_DISABLE_SUCCESS_ACCESS_LOG标志,改用具有类似功能性的AXES_DISABLE_ACCESS_LOG。更新文档以更好地反映标志的行为。 [aleksihakli]

5.0.5 (2019-05-19)

  • 将锁定响应计算从信号处理程序和中间件中的异常抛出更改为请求标记,并将请求属性计算从中间件移动到处理器层。弃用axes.request.AxesHttpRequest对象类型定义。 [aleksihakli]

  • 弃用旧版本4.x的axes.backends.AxesModelBackend类。 [aleksihakli]

  • 改进尝试跟踪、重置、坐标轴自定义、项目和组件兼容性和集成等方面的文档。[aleksihakli]

5.0.4 (2019-05-09)

  • 修复了OAuth2认证后端未设置远程IP地址并在缓存键计算中抛出异常的回归问题。[aleksihakli]

5.0.3 (2019-05-08)

  • 修复了django.contrib.auth模块的loginlogout功能,使其能够与处理器协同工作,无需AxesHttpRequest,以提高与其他Django应用程序的跨兼容性。[aleksihakli]

  • 将IP地址解析更改为允许空或缺失的地址。[aleksihakli]

  • 在处理器层添加错误日志记录,以便用户获得更好的配置错误指示。[aleksihakli]

5.0.2 (2019-05-07)

  • 添加AXES_ENABLED设置,用于禁用Axes,例如使用Django测试客户端的loginlogoutforce_login方法进行测试,这些方法不提供request参数,阻止Axes在特定测试设置中正确运行。[aleksihakli]

5.0.1 (2019-05-03)

  • 将变更日志添加到文档中。[aleksihakli]

5.0 (2019-05-01)

  • 弃用Python 2.7、3.4和3.5支持。[aleksihakli]

  • 移除自动装饰和Django视图和表单的monkey-patching。登录函数和方法装饰器仍然可用。[aleksihakli]

  • 使用后端、中间件和信号处理器跟踪登录尝试和实现用户锁定。[aleksihakli, jorlugaqui, joshua-s]

  • 添加AxesDatabaseHandlerAxesCacheHandlerAxesDummyHandler处理器后端,用于处理用户登录、登出事件和失败。处理器可以通过AXES_HANDLER设置进行配置。[aleksihakli, jorlugaqui, joshua-s]

  • 改进管理命令,并分别提供重置所有访问尝试、按IP地址和按用户名重置尝试的命令。新命令名称为axes_resetaxes_reset_ipaxes_reset_username。[aleksihakli]

  • AXES_USERNAME_CALLABLE添加字符串导入支持,除了旧的可调用类型(如函数或类方法)外,还支持点路径。[aleksihakli]

  • 弃用AXES_USERNAME_CALLABLE的一个参数调用签名。从现在起,可调用函数需要接受两个参数:HttpRequest和凭证,这些凭证在身份验证后端中提供给Django authenticate方法。[aleksihakli]

  • axes.attempts.is_already_locked函数移动到axes.handlers.AxesProxyHandler.is_locked。各种其他先前未记录的方法已被弃用并移入项目内部。新的已记录公共API可以被认为是稳定的,并且可以安全地由其他项目使用。[aleksihakli]

  • 改进文档布局和内容。添加公共API参考部分。[aleksihakli]

4.5.4 (2019-01-15)

  • 改进README和文档。[aleksihakli]

4.5.3 (2019-01-14)

  • 从模型中删除未使用的AccessAttempt.trusted标志。[aleksihakli]

  • 改进README和Travis CI设置。[aleksihakli]

4.5.2 (2019-01-12)

  • 添加了土耳其语翻译。[obayhan]

4.5.1 (2019-01-11)

  • 删除了导致使用API时出现问题的重复检查。[camilonova]

  • 添加了俄语翻译。[lubicz-sielski]

4.5.0 (2018-12-25)

  • 改进使用AXES_USERNAME_FORM_FIELDAXES_USERNAME_CALLABLE设置的自定义身份验证凭据支持。[mastacheata]

  • 更新从请求或凭据中获取用户名的行为:如果没有配置AXES_USERNAME_CALLABLE,现在将使用提供给axes实用方法的可选credentials作为客户端用户名的默认来源,HTTP请求POST作为获取用户信息的后备。在向后兼容的方式下,AXES_USERNAME_CALLABLE实现了一个带有两个参数的替代签名request, credentials,除了旧的request调用参数签名。[aleksihakli]

  • 增加对Django 2.1版本和Python 3.7的官方支持。[aleksihakli]

  • 改进需求、文档、测试和CI设置。[aleksihakli]

4.4.3 (2018-12-08)

  • 修复缺少德语翻译的MANIFEST.in。[aleksihakli]

  • 添加配置标志AXES_RESET_ON_SUCCESS。[arjenzijlstra]

4.4.2 (2018-10-30)

  • 修复缺少迁移,并添加检查以防止再次发生。[markddavidoff]

4.4.1 (2018-10-24)

  • 添加德语翻译。[adonig]

  • 文档措辞更改。[markddavidoff]

  • log_user_login_failed中使用get_client_username而不是凭据。[markddavidoff]

  • 将prospector锁定在0.12.11版本,并将astroid锁定在1.6.5版本。[hsiaoyi0504]

4.4.0 (2018-05-26)

  • 添加AXES_USERNAME_CALLABLE。[jaadus]

4.3.1 (2018-04-21)

  • 将自定义身份验证后端的失败从错误日志级别更改为警告日志级别。[aleksihakli]

  • 为CI管道设置严格的代码检查,如果检查未通过则失败构建。[aleksihakli]

  • 根据代码检查错误清理旧代码库和测试。[aleksihakli]

4.3.0 (2018-04-21)

  • 重构和整理代码布局。[aleksihakli]

  • 将prospector代码检查添加到工具链中。[aleksihakli]

  • 清理日志消息格式和重构类型检查。[EvaSDK]

  • 修复当设置AXES_ONLY_USER_FAILURES时,使用用户代理的用户锁定错误。[EvaSDK]

4.2.1 (2018-04-18)

  • 修复Python 2.7上的Unicode字符串插值错误。[aleksihakli]

4.2.0 (2018-04-13)

  • 添加配置标志以解析客户端IP地址。[aleksihakli]

  • 添加AxesModelBackend身份验证后端。[markdaviddoff]

4.1.0 (2018-02-18)

  • 添加AXES_CACHE设置以配置axes特定缓存。[JWvDronkelaar]

  • 在应用程序设置中添加对LocMemCache使用错误的检查和测试。[aleksihakli]

4.0.2 (2018-01-19)

  • 通过利用win_inet_pton提高Python < 3.4的Windows兼容性。[hsiaoyi0504]

  • 添加django-allauth集成的文档。[grucha]

  • 添加使用django.core.cache.backends.locmem.LocMemCache时axes的已知访问尝试缓存配置问题的文档。[aleksihakli]

  • 重构和改进现有的访问尝试缓存重置实用程序。[aleksihakli]

4.0.1 (2017-12-19)

  • 修复未使用AXES_USERNAME_FORM_FIELD时的问题。[camilonova]

4.0.0 (2017-12-18)

  • 重大变更。为了使用django-ipware获取用户IP地址,已删除AXES_BEHIND_REVERSE_PROXYAXES_REVERSE_PROXY_HEADERAXES_NUM_PROXIES。[camilonova]

  • 添加对自定义用户字段的支撑。[kakulukia]

  • 更新Axes文档以便自定义。[pckapps]

  • 移除按用户名过滤。[camilonova]

  • 修复使用自定义身份验证后端进行身份验证失败的日志记录问题。[D3X]

3.0.3 (2017-11-23)

  • 针对Python 2.7进行测试。[mbaechtold]

  • 针对Python 3.4进行测试。[pope1ni]

3.0.2 (2017-11-21)

  • 添加form_invalid装饰器。修复#265。[camilonova]

3.0.1 (2017-11-17)

  • 修复logger警告的DeprecationWarning。[richardowen]

  • 修复全局锁定可能性。[joeribekker]

  • 更改管理命令中输出处理的方式。[ataylor32]

3.0.0 (2017-11-17)

  • 重大变更。支持Django >= 1.11和信号,请参阅问题#215。停止支持Python < 3.6。[camilonova]

2.3.3 (2017-07-20)

  • 许多调整并处理成功的AJAX登录。[Jack Sullivan]

  • 添加代理数量参数化的测试。[aleksihakli]

  • 添加AXES_NUM_PROXIES设置。[aleksihakli]

  • 记录无论设置如何都失败的访问尝试。[jimr]

  • 更新配置文档以包括AXES_IP_WHITELIST。[Minkey27]

  • 为get_cache_key函数添加测试。[jorlugaqui]

  • 在reset命令行中删除缓存键。[jorlugaqui]

  • 添加用于设置/删除缓存键的信号。[jorlugaqui]

2.3.2 (2016-11-24)

  • 仅在POST请求中查找可锁定用户。[schinckel]

  • 修复和添加IPv4和IPv6解析的测试。[aleksihakli]

2.3.1 (2016-11-12)

  • 添加了禁用成功访问日志的设置 [Minkey27]

  • 修复了传递给inet_pton的非法IP地址字符串 [samkuehn]

2.3.0 (2016-11-04)

  • 修复了axes_reset管理命令,以跳过“ip”前缀到命令参数。 [EvaMarques]

  • 添加了axes_reset_user管理命令,以重置特定用户的锁定和失败登录记录。 [vladimirnani]

  • 修复了Travis-PyPI发布配置。 [jezdez]

  • 使IP位置参数可选。 [aredalen]

  • 添加了禁用访问日志的可能性 [svenhertle]

  • 修复了作为反向代理使用的IIS添加端口号的问题 [Dmitri-Sintsov]

  • 使信号竞争条件安全。 [Minkey27]

  • 添加了AXES_ONLY_USER_FAILURES以仅支持查看用户ID。 [lip77us]

2.2.0 (2016-07-20)

  • 改进了使用反向代理时的逻辑,以避免可能的攻击。 [camilonova]

2.1.0 (2016-07-14)

  • 添加了default_app_config,这样您就可以在INSTALLED_APPS中仅使用axes [vdboor]

2.0.0 (2016-06-24)

  • 移除了中间件以使用app_config [camilonova]

  • 大量清理 [camilonova]

  • 改进了测试套件和版本 [camilonova]

1.7.0 (2016-06-10)

  • 使用render快捷方式渲染LOCKOUT_TEMPLATE [Radoslaw Luter]

  • 添加了app_label for RemovedInDjango19Warning [yograterol]

  • 添加了iso8601翻译器。 [mullakhmetov]

  • 编辑json响应。上下文现在包含ISO 8601格式的cooloff时间 [mullakhmetov]

  • 添加json响应和iso8601测试。 [mullakhmetov]

  • 修复了问题162:pip安装时的UnicodeDecodeError [joeribekker]

  • 添加了AXES_NEVER_LOCKOUT_WHITELIST选项,以防止某些IP被锁定。 [joeribekker]

1.6.1 (2016-05-13)

  • 修复了BEHIND_REVERSE_PROXY时的白名单检查 [Patrick Hagemeister]

  • 使迁移与py3兼容 [mvdwaeter]

  • 修复了#126,可能与Django<=1.7的兼容性问题 [int-ua]

  • 为升级用户添加有关新迁移文件的说明 [kelseyq]

  • 修复了#148 [camilonova]

  • 仅装饰auth_views.login一次 [teeberg]

  • 将IP公共/私有分类器设置为符合RFC 1918。 [SilasX]

  • 问题#155。锁定响应状态代码更改为403。 [Arthur Mullahmetov]

  • BUGFIX:缺少迁移 [smeinel]

1.6.0 (2016-01-07)

  • 停止使用render_to_response,以便其他模板引擎可以工作 [tarkatronic]

  • 改进了性能和DoS预防措施 [tarkatronic]

  • 如果用户不可锁定,则立即从is_already_locked返回 [jdunck]

  • 只遍历一次IP地址 [annp89]

  • 添加了支持django 1.7 &up的初始迁移文件。升级用户应在更新后运行migrate –fake-initial [ibaguio]

  • 向CommonAccess模型添加数据库索引 [Schweigi]

1.5.0 (2015-09-11)

  • 修复#_get_user_attempts,当AXES_LOCK_OUT_BY_COMBINATION_USER_AND_IP为True时,包含用户名来过滤AccessAttempts [afioca]

1.4.0 (2015-08-09)

  • 发送user_locked_out信号。修复#94。 [toabi]

1.3.9 (2015-02-11)

  • Python 3修复 (#104)

1.3.8 (2014-10-07)

  • 将GitHub组织从django-security重命名为django-pci,以强调专注于为使用Django构建PCI兼容网站提供帮助。 [aclark4life]

1.3.7 (2014-10-05)

  • 解释Axes静默失败时的常见问题 [cericoda]

  • 允许在POST数据中查找用户定义的用户名字段 [SteveByerly]

  • 仅在用户已登录时注销 [zoten]

  • 支持cooloff时间中的浮点数(例如:0.1等于6分钟) [marianov]

  • 限制记录的POST数据量 (#73)。限制值的长度是不够的,因为可能有任意数量的它们,或者非常长的键名。 [peterkuma]

  • 改进get_ip以尝试获取真实IP地址 [7wonders]

  • 将IPAddressField更改为GenericIPAddressField。当使用PostgreSQL数据库且客户端未传递IP地址时,您会得到inet错误。这是与IPAddressField相关的PostgreSQL已知问题。 https://code.djangoproject.com/ticket/5622。可以通过使用GenericIPAddressField来解决此问题。 [polvoblanco]

  • 获取第一个X-Forwarded-For IP [tutumcloud]

  • 允许反向代理后的IP地址白名单。即使某些IP地址位于反向代理后面,也允许它们直接访问应用程序。这些IP地址必须仍然在白名单上。[ericbulloch]

  • 减少反向代理IP查找的日志记录并使用配置的记录器。修复了#76。不再在每次尝试时记录django.axes寻找反向代理设置的HTTP头部的通知,而是在首次模块导入时只记录一次。同时使用配置的记录器(默认为axes.watch_login)来使日志记录更一致。[eht16]

  • 限制记录到数据库中的值的长度。参见#73 [camilonova]

  • 重构测试以提高稳定性和速度 [camilonova]

  • 清理客户端引用 [camilonova]

  • 修复了管理员登录URL [camilonova]

  • 添加了django 1.7进行测试 [camilonova]

  • Travis文件清理 [camilonova]

  • 删除硬编码的URL路径 [camilonova]

  • 修复了django 1.7的测试 [Andrew-Crosio]

  • 修复了django 1.7异常不存在的问题 [Andrew-Crosio]

  • 从测试中删除了python 2.6 [camilonova]

  • 使用django内置的six版本 [camilonova]

  • 添加了six作为依赖项 [camilonova]

  • 为Travis测试添加了python 2.6 [camilonova]

  • 将u字符串字面量前缀替换为six.u()调用 [amrhassan]

  • 修复了对象类型问题,响应不是字符串 [camilonova]

  • db_reset的Python 3兼容性修复 [nicois]

  • 添加了示例项目和辅助脚本 [barseghyanartur]

  • 管理员命令列出登录尝试 [marianov]

  • 将six导入替换为django.utils.six [amrhassan]

  • 将u字符串字面量前缀替换为six.u()调用以使其与Python 3.2兼容 [amrhassan]

  • 将assertIn`s和`assertNotIn`s替换为`assertContains`和`assertNotContains` [fcurella]

  • 将py3k添加到Travis [fcurella]

  • 更新测试用例以与Python 3兼容 [nicois]

  • db_reset的Python 3兼容性修复 [nicois]

  • 从示例URL中删除垃圾 [barseghyanartur]

  • 添加了django安装程序 [barseghyanartur]

  • 添加了示例项目和辅助脚本 [barseghyanartur]

1.3.6 (2013-11-23)

  • 如果get_profile不存在,则添加AttributeError [camilonova]

  • 改进了axes_reset命令 [camilonova]

1.3.5 (2013-11-01)

  • 修复了__version__加载错误版本的问题 [graingert]

1.3.4 (2013-11-01)

  • 更新README.rst以用于PyPI [marty, camilonova, graingert]

  • 添加冷却期 [visualspace]

1.3.3 (2013-07-05)

  • 将“用户名”字段添加到Admin表 [bkvirendra]

  • 删除了回退日志创建,因为从django 1.4或更高版本开始,默认情况下会启用日志记录,如果没有,则是因为您明确想要这样。[camilonova]

1.3.2 (2013-03-28)

  • 修复了用户注销时的问题 [camilonova]

  • 匹配pypi版本 [camilonova]

  • 改进了User模型导入方法 [camilonova]

  • 只使用一个地方获取版本号 [camilonova]

  • 修复了django 1.4注销时的问题 [camilonova]

  • 如果没有设置用户配置文件模型,则处理异常 [camilonova]

  • 进行了一些清理并删除了pokemon异常处理 [camilonova]

  • 改进了测试,以便真正地寻找洞中的兔子 [camilonova]

  • 匹配pypi版本 [camilonova]

1.3.1 (2013-03-19)

  • 添加了对Django 1.5的支持 [camilonova]

1.3.0 (2013-02-27)

  • 错误修复:get_version()格式字符串 [csghormley]

1.2.9 (2013-02-20)

  • 添加并改进了测试用例 [camilonova]

1.2.8 (2013-01-23)

  • 增加了http接受头部的长度 [jslatts]

1.2.7 (2013-01-17)

  • 添加了反向代理支持 [rmagee]

  • 清理README [martey]

1.2.6 (2012-12-04)

  • 删除了未使用的导入 [aclark4life]

1.2.5 (2012-11-28)

  • 修复了setup.py [aclark4life]

  • 添加了将用户账户标记为可解锁的功能。 [kencochrane]

  • 将ipaddress作为user_locked_out信号的参数。 [kencochrane]

  • 添加了user_logged_out的信号接收器。 [kencochrane]

  • 添加了当用户被锁定时的信号。 [kencochrane]

  • 添加了AccessLog模型以记录所有访问尝试。 [kencochrane]

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您平台的应用程序文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

django_axes-7.0.0.tar.gz (247.5 kB 查看散列值)

上传时间

构建分发

django_axes-7.0.0-py3-none-any.whl (68.7 kB 查看散列值)

上传时间 Python 3

由以下组织支持