Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
django-defender — Una aplicación reutilizable de Django simple y muy rápida que bloquea los intentos de inicio de sesión por fuerza bruta. | Kitploit
Herramientas/GitHubGitHub/jazzband/django-defender
Herramientas DefensivasAtaques de ContraseñasSeguridad WebAutenticación
GitHubjazzband/django-defender

django-defender

Una aplicación reutilizable de Django simple y muy rápida que bloquea los intentos de inicio de sesión por fuerza bruta.

Ver Repositorio
1.1k14428hace 8 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

django-defender

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

.. image:: https://img.shields.io/pypi/pyversions/django-defender.svg :alt: Versiones de Python compatibles :target: https://pypi.org/project/django-defender/

.. image:: https://img.shields.io/pypi/djversions/django-defender.svg :target: https://pypi.org/project/django-defender/ :alt: Versiones de Django compatibles

.. image:: https://github.com/jazzband/django-defender/workflows/Test/badge.svg :target: https://github.com/jazzband/django-defender/actions :alt: Acciones de GitHub

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

.. image:: https://readthedocs.org/projects/django-defender/badge/?version=latest :alt: Estado de la documentación :target: https://django-defender.readthedocs.io/en/latest/?badge=latest

Una aplicación reutilizable simple de Django que bloquea a las personas que intentan ataques de fuerza bruta en el inicio de sesión. El objetivo es hacer esto lo más rápido posible, para no ralentizar los intentos de inicio de sesión.

Usaremos una caché para no tener que consultar la base de datos en cada intento de inicio de sesión. La primera versión se basará en Redis, pero el objetivo es hacerlo configurable para que las personas puedan usar el backend que mejor se adapte a sus necesidades.

Sitios que usan django-defender

Si estás usando defender en tu sitio, envía un PR para agregarlo a la lista.

  • https://hub.docker.com
  • https://www.mycosbuilder.com

Documentación

La documentación está disponible en Read the Docs:

https://django-defender.readthedocs.io

Características

  • Registrar todos los intentos de inicio de sesión en la base de datos

  • Soporte para proxies inversos con diferentes cabeceras para direcciones IP

  • Límite de velocidad basado en

    • Nombre de usuario
    • Dirección IP
  • Usar Redis para la lista negra

  • Configuración

    • Servidor Redis

      • Host
      • Puerto
      • Base de datos
      • Contraseña
      • Prefijo de clave
    • Duración del bloqueo

    • Número de intentos incorrectos antes del bloqueo

  • 95% de cobertura de código

  • Documentación completa

  • Capacidad de almacenar intentos de inicio de sesión en la base de datos

  • Comando de gestión para limpiar la tabla de la base de datos de intentos de inicio de sesión

  • Páginas de administración

    • Lista de nombres de usuario y direcciones IP bloqueados
    • Lista de intentos de inicio de sesión recientes
    • Capacidad de desbloquear personas
  • Se puede adaptar fácilmente a métodos de autenticación personalizados.

  • Se envían señales al bloquear nombre de usuario o IP

Páginas de administración


.. image:: https://cloud.githubusercontent.com/assets/261601/5950540/8895b570-a729-11e4-9dc3-6b00e46c8043.png :target: https://cloud.githubusercontent.com/assets/261601/5950540/8895b570-a729-11e4-9dc3-6b00e46c8043.png :alt: alt tag

.. image:: https://cloud.githubusercontent.com/assets/261601/5950541/88a35194-a729-11e4-981b-3a55b44ef9d5.png :target: https://cloud.githubusercontent.com/assets/261601/5950541/88a35194-a729-11e4-981b-3a55b44ef9d5.png :alt: alt tag

Requisitos

  • Python: 3.8, 3.9, 3.10, 3.11, 3.12, PyPy
  • Django: 3.2, 4.2, 5.0, 5.1, 5.2
  • Redis: 5.x, 6.x, 7.x

Instalación

Descargue el código y ejecute setup de una de las siguientes maneras según el método.

Para instalar la versión lista para producción desde PyPI:

.. code-block:: bash

pip install django-defender

Para instalar la versión de desarrollo desde el código fuente después de descargarlo:

.. code-block:: bash

python setup.py install

Para instalar la versión de desarrollo de la rama master desde el repositorio de GitHub:

.. code-block:: bash

pip install -e git+http://github.com/kencochran django-defender.git#egg=django_defender-dev

En primer lugar, debe agregar este proyecto a su lista de INSTALLED_APPS en settings.py

.. code-block:: python

INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', # ... 'defender', # ... ]

A continuación, instale el middleware FailedLoginMiddleware

.. code-block:: python

MIDDLEWARE_CLASSES = [ 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'defender.middleware.FailedLoginMiddleware', ]

Si desea gestionar los usuarios bloqueados a través del administrador de Django, agregue lo siguiente a su urls.py

.. code-block:: python

urlpatterns = [ path('admin/defender/', include('defender.urls')), # admin de defender path('admin/', admin.site.urls), # admin normal # sus propios patrones a continuación... ]

Migraciones


Necesitará crear tablas en su base de datos que sean necesarias para el funcionamiento.

.. code-block:: bash

python manage.py migrate defender

Comandos de gestión


cleanup_django_defender

Si tiene un sitio web con mucho tráfico, la tabla AccessAttempts se llenará rápidamente. Si no necesita conservar los datos para fines de auditoría, hay un comando de gestión para ayudarle a mantenerla limpia.

Observará su configuración DEFENDER_ACCESS_ATTEMPT_EXPIRATION para determinar qué registros se eliminarán. El valor predeterminado, si no se especifica, es 24 horas.

.. code-block:: bash

$ python manage.py cleanup_django_defender

Puede configurar esto como una tarea cron diaria o semanal para mantener el tamaño de la tabla reducido.

.. code-block:: bash

ejecutar a las 12:24 AM cada mañana.

24 0 * * * /usr/bin/python manage.py cleanup_django_defender >> /var/log/django_defender_cleanup.log

Objetivos a largo plazo

  • Backends conectables, para que la gente pueda usar algo que no sea Redis
  • Enviar correo electrónico a los usuarios cuando su cuenta esté bloqueada
  • Agregar una lista blanca para nombres de usuario e IP que nunca bloquearemos (administradores, etc.)
  • Agregar una lista negra permanente para direcciones IP
  • Escanear en busca de IPs de proxy conocidos y no bloquear solicitudes provenientes de esos (mejorar las posibilidades de que una IP buena sea bloqueada)
  • Agregar comando de gestión para eliminar intentos de inicio de sesión antiguos (configurables).

Rendimiento


El objetivo de defender es ser lo más rápido posible para no ralentizar el proceso de inicio de sesión. Para asegurarnos de que cumplimos nuestros objetivos, necesitamos una forma de probar la aplicación para asegurarnos de que vamos por buen camino. La mejor forma de hacer esto es comparar la rapidez de un inicio de sesión normal de Django con defender y django-axes.

El inicio de sesión normal de Django sería nuestra línea base, y esperamos que sea el más rápido de los 3 métodos, porque no se realizan comprobaciones adicionales.

El inicio de sesión con defender probablemente será más lento que el de Django, y esperamos que sea más rápido que el de django-axes. El objetivo es que haya la menor diferencia posible entre el inicio de sesión normal y defender.

La velocidad de inicio de sesión con django-axes probablemente será la más lenta de las tres, ya que realiza más comprobaciones y muchas consultas a la base de datos.

La mejor manera de determinar la velocidad de un inicio de sesión es realizar una prueba de carga contra una aplicación con cada configuración y comparar los tiempos de inicio de sesión para cada tipo.

Pruebas de carga


Descargar herramienta