<commit_before>django-defender
===============

A simple Django reusable app that blocks people from brute forcing login
attempts. The goal is to make this as fast as possible, so that we do not
slow down the login attempts.

We will use a cache so that it doesn't have to hit the database in order to
check the database on each login attempt. The first version will be based on
Redis, but the goal is to make this configurable so that people can use whatever
backend best fits their needs.

Build status
------------

[![Build Status](https://travis-ci.org/kencochrane/django-defender.svg)](https://travis-ci.org/kencochrane/django-defender) [![Coverage Status](https://img.shields.io/coveralls/kencochrane/django-defender.svg)](https://coveralls.io/r/kencochrane/django-defender)[![Code Health](https://landscape.io/github/kencochrane/django-defender/master/landscape.svg)](https://landscape.io/github/kencochrane/django-defender/master)

Sites using Defender:
=====================
- https://hub.docker.com


Versions
========
- 0.3
    - Added management command ``cleanup_django_axes`` to clean up access
    attempt table.
    - Added ``DEFENDER_STORE_ACCESS_ATTEMPTS`` config to say if you want to
    store attempts to DB or not.
    - Added ``DEFENDER_ACCESS_ATTEMPT_EXPIRATION`` config to specify how long
    to store the access attempt records in the db, before the management command
    cleans them up.
    - changed the Django admin page to remove some filters which were making the
    page load slow with lots of login attempts in the database.
- 0.2.2 - bug fix add missing files to pypi package
- 0.2.1 - bug fix
- 0.2 - security fix for XFF headers<commit_msg>fixed the management command name<commit_after>django-defender
===============

A simple Django reusable app that blocks people from brute forcing login
attempts. The goal is to make this as fast as possible, so that we do not
slow down the login attempts.

We will use a cache so that it doesn't have to hit the database in order to
check the database on each login attempt. The first version will be based on
Redis, but the goal is to make this configurable so that people can use whatever
backend best fits their needs.

Build status
------------

[![Build Status](https://travis-ci.org/kencochrane/django-defender.svg)](https://travis-ci.org/kencochrane/django-defender) [![Coverage Status](https://img.shields.io/coveralls/kencochrane/django-defender.svg)](https://coveralls.io/r/kencochrane/django-defender)[![Code Health](https://landscape.io/github/kencochrane/django-defender/master/landscape.svg)](https://landscape.io/github/kencochrane/django-defender/master)

Sites using Defender:
=====================
- https://hub.docker.com


Versions
========
- 0.3.1 - fixed the management command name
- 0.3
    - Added management command ``cleanup_django_defender`` to clean up access
    attempt table.
    - Added ``DEFENDER_STORE_ACCESS_ATTEMPTS`` config to say if you want to
    store attempts to DB or not.
    - Added ``DEFENDER_ACCESS_ATTEMPT_EXPIRATION`` config to specify how long
    to store the access attempt records in the db, before the management command
    cleans them up.
    - changed the Django admin page to remove some filters which were making the
    page load slow with lots of login attempts in the database.
- 0.2.2 - bug fix add missing files to pypi package
- 0.2.1 - bug fix
- 0.2 - security fix for XFF headers
{'fraction_non_alphanumeric': 0.11201866977829639, 'fraction_numerical': 0.006709451575262544, 'mean_word_length': 3.948051948051948, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 14, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6376337', 'n_tokens_mistral': 1031, 'n_tokens_neox': 952, 'n_words': 385}