Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
django-defender — Eine einfache, superschnelle, wiederverwendbare Django-App, die Brute-Force-Anmeldeversuche blockiert | Kitploit
Tools/GitHubGitHub/jazzband/django-defender
DefensivwerkzeugePasswortangriffeWebsicherheitAuthentifizierung
GitHubjazzband/django-defender

django-defender

Eine einfache, superschnelle, wiederverwendbare Django-App, die Brute-Force-Anmeldeversuche blockiert

Repository anzeigen
1.1k14428vor 8 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

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: Unterstützte Python-Versionen :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: Unterstützte Django-Versionen

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

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

.. image:: https://readthedocs.org/projects/django-defender/badge/?version=latest :alt: Dokumentationsstatus :target: https://django-defender.readthedocs.io/en/latest/?badge=latest

Eine einfache, wiederverwendbare Django-App, die Brute-Force-Loginversuche blockiert. Ziel ist es, dies so schnell wie möglich zu machen, damit die Loginversuche nicht verlangsamt werden.

Wir verwenden einen Cache, damit für jeden Loginversuch nicht die Datenbank abgefragt werden muss. Die erste Version basiert auf Redis, aber das Ziel ist es, dies konfigurierbar zu machen, sodass Benutzer das Backend verwenden können, das ihren Anforderungen am besten entspricht.

Websites, die django-defender verwenden

Wenn Sie defender auf Ihrer Website verwenden, reichen Sie einen PR ein, um zur Liste hinzugefügt zu werden.

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

Dokumentation

Die Dokumentation ist auf Read the Docs verfügbar:

https://django-defender.readthedocs.io

Funktionen

  • Alle Anmeldeversuche in der Datenbank protokollieren

  • Unterstützung für Reverse Proxies mit verschiedenen Headern für IP-Adressen

  • Ratenbegrenzung basierend auf

    • Benutzername
    • IP-Adresse
  • Redis für die Blacklist verwenden

  • Konfiguration

    • Redis-Server

      • Host
      • Port
      • Datenbank
      • Passwort
      • Schlüsselpräfix
    • Sperrdauer

    • Anzahl fehlerhafter Versuche vor Sperrung

  • 95% Codeabdeckung

  • Vollständige Dokumentation

  • Möglichkeit, Anmeldeversuche in der Datenbank zu speichern

  • Management-Befehl zum Bereinigen der Datenbanktabelle für Anmeldeversuche

  • Admin-Seiten

    • Liste gesperrter Benutzernamen und IP-Adressen
    • Liste der letzten Anmeldeversuche
    • Möglichkeit, Personen zu entsperren
  • Kann leicht an eine benutzerdefinierte Authentifizierungsmethode angepasst werden.

  • Signale werden beim Sperren von Benutzername oder IP gesendet

Admin-Seiten


.. 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

Anforderungen

  • 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

Installation

Laden Sie den Code herunter und führen Sie die Installation auf eine der folgenden Arten aus, je nach Methode.

Um die produktionsreife Version von PyPI zu installieren:

.. code-block:: bash

pip install django-defender

Um die Entwicklungsversion aus dem Quellcode nach dem Herunterladen zu installieren:

.. code-block:: bash

python setup.py install

Um die Entwicklungsversion des Master-Branches aus dem GitHub-Repository zu installieren:

.. code-block:: bash

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

Zuerst müssen Sie dieses Projekt zu Ihrer Liste der INSTALLED_APPS in settings.py hinzufügen:

.. code-block:: python

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

Als nächstes installieren Sie die Middleware FailedLoginMiddleware:

.. code-block:: python

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

Wenn Sie die gesperrten Benutzer über das Django-Admin verwalten möchten, fügen Sie Folgendes zu Ihrer urls.py hinzu:

.. code-block:: python

urlpatterns = [ path('admin/defender/', include('defender.urls')), # defender admin path('admin/', admin.site.urls), # normal admin # your own patterns follow... ]

Migrationen


Sie müssen in Ihrer Datenbank die für den Betrieb notwendigen Tabellen erstellen:

.. code-block:: bash

python manage.py migrate defender

Management-Befehle


cleanup_django_defender

Wenn Sie eine Website mit viel Traffic haben, wird die Tabelle AccessAttempts ziemlich schnell voll. Wenn Sie die Daten nicht zu Prüfzwecken aufbewahren müssen, gibt es einen Management-Befehl, der Ihnen hilft, sie sauber zu halten.

Dieser Befehl prüft Ihre Einstellung DEFENDER_ACCESS_ATTEMPT_EXPIRATION, um zu bestimmen, welche Datensätze gelöscht werden. Der Standardwert, falls nicht angegeben, ist 24 Stunden.

.. code-block:: bash

$ python manage.py cleanup_django_defender

Sie können dies als täglichen oder wöchentlichen Cron-Job einrichten, um die Tabellengröße gering zu halten:

.. code-block:: bash

run at 12:24 AM every morning.

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

Langfristige Ziele

  • Plug-in-fähige Backends, damit andere als Redis verwendet werden können
  • Benutzer per E-Mail benachrichtigen, wenn ihr Konto gesperrt wird
  • Eine Whitelist für Benutzernamen und IPs hinzufügen, die wir nie sperren (Admins usw.)
  • Eine permanente Blacklist für IP-Adressen hinzufügen
  • Nach bekannten Proxy-IPs scannen und Anfragen von diesen nicht blockieren (die Wahrscheinlichkeit erhöhen, dass eine gute IP blockiert wird)
  • Management-Befehl zum Löschen alter (konfigurierbarer) Anmeldeversuche hinzufügen

Leistung


Das Ziel von defender ist es, es so schnell wie möglich zu machen, damit es den Anmeldeprozess nicht verlangsamt. Um sicherzustellen, dass unsere Ziele erreicht werden, benötigen wir eine Möglichkeit, die Anwendung zu testen, um sicherzustellen, dass wir auf dem richtigen Weg sind. Der beste Weg, dies zu tun, ist zu vergleichen, wie schnell ein normaler Django-Login mit defender und django-axes ist.

Der normale Django-Login wäre unsere Basislinie, und wir erwarten, dass er die schnellste der drei Methoden ist, da keine zusätzlichen Überprüfungen stattfinden.

Der defender-Login wäre wahrscheinlich langsamer als der Django-Login und hoffentlich schneller als der django-axes-Login. Ziel ist es, den Unterschied zwischen dem normalen rohen Login und defender so gering wie möglich zu halten.

Die Geschwindigkeit des django-axes-Logins wird wahrscheinlich die langsamste der drei sein, da es mehr Überprüfungen durchführt und viele Datenbankabfragen macht.

Die beste Methode, um die Geschwindigkeit eines Logins zu bestimmen, ist ein Auslastungstest gegen eine Anwendung mit jedem Setup und der Vergleich der Login-Zeiten für jeden Typ.

Auslastungstests


Um sicherzustellen, dass wir alle verschiedenen Arten von Logins abdecken, müssen wir in unserem Auslastungstest mehr als einen Test haben.

Tool herunterladen