Keep track of failed login attempts in Django-powered sites.
Find a file
Aleksi Häkli c3cfb5150a Refactor cache backend to use cache.incr method for request tracking
The old cache.set method has problems with correctness as well as
performance on higher traffic sites where there are
multiple parallel web servers running at the same time
which can overwrite each others shared cache
2023-05-01 21:27:47 +03:00
.github Adjust GitHub and tox matrix to match current version support state 2023-04-28 13:08:26 +03:00
axes Refactor cache backend to use cache.incr method for request tracking 2023-05-01 21:27:47 +03:00
docs Update django-ipware configuration flags to new AXES_IPWARE_ prefixes 2023-04-28 14:16:44 +03:00
tests Refactor cache backend to use cache.incr method for request tracking 2023-05-01 21:27:47 +03:00
.gitignore chore: add venv to .gitignore 2023-04-26 18:27:33 +03:00
.pre-commit-config.yaml Add .pre-commit-config.yaml 2021-10-12 10:10:05 +03:00
.prospector.yaml Update prospector to 1.8.2 2022-12-03 14:12:51 +02:00
CHANGES.rst Correct CHANGES word ordering 2023-04-28 14:28:51 +03:00
CODE_OF_CONDUCT.md Jazzband: Created local 'CODE_OF_CONDUCT.md' from remote 'CODE_OF_CONDUCT.md' 2021-10-21 14:34:07 +00:00
codecov.yml Raise minimum test coverage to 90% 2019-02-10 19:22:13 +02:00
CONTRIBUTING.rst docs: add CONTRIBUTING.rst 2023-04-27 22:04:55 +03:00
LICENSE Update author and licence information 2019-03-13 16:56:56 +02:00
manage.py Move tests outside project source folder 2021-01-07 18:23:33 +02:00
mypy.ini Update remaining part of Python 3.6 to 3.7 2022-09-28 11:50:26 +03:00
pyproject.toml Adjust GitHub and tox matrix to match current version support state 2023-04-28 13:08:26 +03:00
README.rst docs: fix divider line after contributing section 2023-04-27 22:04:55 +03:00
requirements-qa.txt Bump mypy from 1.1.1 to 1.2.0 2023-04-08 20:04:35 +03:00
requirements-test.txt Bump coverage from 7.2.4 to 7.2.5 2023-05-01 17:55:02 +03:00
requirements.txt Bump tox from 4.5.0 to 4.5.1 2023-04-27 22:05:08 +03:00
setup.py Make ipware an optional dependency 2023-04-28 14:16:44 +03:00

django-axes
===========

.. image:: https://jazzband.co/static/img/badge.svg
   :target: https://jazzband.co/
   :alt: Jazzband

.. image:: https://img.shields.io/github/stars/jazzband/django-axes.svg?label=Stars&style=socialcA
   :target: https://github.com/jazzband/django-axes
   :alt: GitHub

.. image:: https://img.shields.io/pypi/v/django-axes.svg
   :target: https://pypi.org/project/django-axes/
   :alt: PyPI release

.. image:: https://img.shields.io/pypi/pyversions/django-axes.svg
   :target: https://pypi.org/project/django-axes/
   :alt: Supported Python versions

.. image:: https://img.shields.io/pypi/djversions/django-axes.svg
   :target: https://pypi.org/project/django-axes/
   :alt: Supported Django versions

.. image:: https://img.shields.io/readthedocs/django-axes.svg
   :target: https://django-axes.readthedocs.io/
   :alt: Documentation

.. image:: https://github.com/jazzband/django-axes/workflows/Test/badge.svg
   :target: https://github.com/jazzband/django-axes/actions
   :alt: GitHub Actions

.. image:: https://codecov.io/gh/jazzband/django-axes/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/jazzband/django-axes
   :alt: Coverage


Axes is a Django plugin for keeping track of suspicious
login attempts for your Django based website
and implementing simple brute-force attack blocking.

The name is sort of a geeky pun, since it can be interpreted as:

* ``access``, as in monitoring access attempts, or
* ``axes``, as in tools you can use to hack (generally on wood).


Functionality
-------------

Axes records login attempts to your Django powered site and prevents attackers
from attempting further logins to your site when they exceed the configured attempt limit.

Axes can track the attempts and persist them in the database indefinitely,
or alternatively use a fast and DDoS resistant cache implementation.

Axes can be configured to monitor login attempts by
IP address, username, user agent, or their combinations.

Axes supports cool off periods, IP address whitelisting and blacklisting,
user account whitelisting, and other features for Django access management.


Documentation
-------------

For more information on installation and configuration see the documentation at:

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


Issues
------

If you have questions or have trouble using the app please file a bug report at:

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


Contributing
------------

See `CONTRIBUTING <CONTRIBUTING.rst>`__.