HTTP Basic Authentication (Basic Auth) vs. Modern Basic Auth (m.b.a.)
Was ist Basic Auth?
HTTP Basic Authentication, kurz Basic Auth, ist ein sehr einfacher Mechanismus zur Zugangskontrolle im Web. Der Server fordert den Benutzer auf, einen Benutzernamen und ein Paßwort einzugeben, die dann bei jeder Anfrage automatisch mitgesendet werden. Die Zugangsdaten werden nur Base64-kodiert übertragen, daher ist die Nutzung nur in Verbindung mit HTTPS sicher.
Wofür nutzt man Basic Auth?
Basic Auth eignet sich besonders für:
- Schutz von Admin-Bereichen oder Staging-Seiten
- Interne Tools oder Wartungsseiten
- Bereiche, in denen nur ein kleiner Kreis an Benutzern Zugriff benötigt
Der Vorteil liegt darin, daß es sofort vom Server unterstützt wird, keine zusätzliche Software oder komplexes Session-Handling nötig ist.
Warum wird Basic Auth so häufig verwendet?
Die Beliebtheit kommt von der extrem einfachen Implementierung und der universellen Unterstützung durch Browser und Tools wie curl. Entwickler:innen können schnell und ohne großen Aufwand einen Verzeichnisschutz einrichten, der schon einen soliden Grundschutz bietet.
Vorteile von Basic Auth
- Einfach umzusetzen – native Unterstützung in Apache, Nginx und anderen Webservern.
- Kein Session-Handling – keine Cookies, Sessions oder Session-Hijacking.
- Geringe Angriffsfläche – minimaler Code, kaum typische Web-Schwachstellen.
- Serverseitig erzwungen – greift, bevor PHP oder andere Anwendungen ausgeführt werden.
- Ressourcenschonend – ideal für kleine Systeme oder Low-Budget-Server.
- Kompatibel mit allen Browsern & Tools – funktioniert überall ohne Anpassung.
- Einfache Integration in Logs und Automatisierung – Fehlversuche landen direkt im Server-Log, z. B. für Fail2Ban.
- Kein JavaScript nötig – funktioniert auch bei deaktiviertem JS oder restriktiven Clients.
- Optimal für Verzeichnisschutz – besonders für Admin- oder Wartungsbereiche.
Nachteile von Basic Auth
- Unsicher ohne HTTPS – Daten werden nur Base64-kodiert übertragen.
- Zugangsdaten bei jeder Anfrage – werden bei jeder Request erneut gesendet.
- Kein klassisches Logout – Abmelden ist browserabhängig, oft nur durch Schließen des Browsers möglich.
- Eingeschränkte Benutzerführung – kein individuelles Login-Design, keine Fehlermeldungen.
- Keine Rollen- oder Rechteverwaltung – nur Zugriff erlaubt oder nicht.
- Schlechte Skalierbarkeit bei vielen Nutzern –
.htpasswdwird schnell unübersichtlich. - Umständliche Paßwortänderung – erfordert Serverzugriff oder Tools.
- Keine Anforderungen an Paßwortstärke – Keine Mindestlänge, keine Sonderzeichen, keine Komplexität.
- Keine Passwort-Policy oder Ablaufmechanismen – Keine Möglichkeit, Passwörter regelmäßig zu ändern oder ablaufen zu lassen.
- Keine 2FA-Unterstützung – Mehrfaktor-Authentifizierung ist nicht vorgesehen.
- Browser speichern Zugangsdaten aggressiv – Nutzer verlieren leicht den Überblick. Browser-Credentials Browser speichern Basic Auth Zugangsdaten automatisch und geben sie bei jeder Anfrage wieder mit. Nutzer merken oft nicht, dass sie noch eingeloggt sind, oder andere Personen könnten Zugriff erhalten, wenn der Rechner gemeinsam genutzt wird.
- Kein Schutz gegen Credential-Reuse Credential-Reuse bedeutet, daß ein Paßwort mehrfach auf verschiedenen Diensten verwendet wird. Wenn es bei einem Dienst gestohlen wird, können Angreifer es auch bei anderen Diensten ausprobieren. Basic Auth schützt hier nicht. – keine Mechanismen gegen Leaks oder Wiederverwendung.
- Eingeschränkte Internationalisierung – Login-Dialoge sind browserabhängig.
- Nicht geeignet für öffentliche Nutzerkonten – keine Selbstregistrierung oder Paßwort-Reset.
Basic Auth ist bewußt einfach gehalten und eignet sich gut für viele Standardszenarien. Sobald jedoch zusätzliche Anforderungen wie Bruteforce-Schutz, Captcha oder eine komfortable Benutzerverwaltung hinzukommen, stößt der klassische Verzeichnisschutz schnell an seine Grenzen.
Genau an diesen Grenzen setzt Modern Basic Auth (m.b.a.) an:
Modern Basic Auth (m.b.a.)
m.b.a. ist ein leichtgewichtiges PHP-Tool zum schnellen und einfachen Schutz von Web-Verzeichnissen.
Es ersetzt klassisches BasicAuth-Funktionen funktional, bietet aber zusätzliche Sicherheitsmechanismen wie
Bruteforce
Ein Bruteforce-Angriff ist ein Versuch, ein Paßwort oder einen Schlüssel durch systematisches Ausprobieren aller möglichen Kombinationen zu knacken.
-Schutz,
Captcha
Ein Captcha (Completely Automated Public Turing test to tell Computers and Humans Apart) ist eine Sicherheitsabfrage, die Menschen von automatisierten Bots unterscheiden soll. Häufig werden kleine Rechenaufgaben, Bilder oder Texteingaben verwendet.
und eine Web-basierte Benutzerverwaltung – alles ohne große Sessions oder externe Libraries.
Funktionen
- Zuverlässige Paßwortprüfung ohne PHP-Session
- Bruteforce-Erkennung mit automatischem Sperr- und Cleanup-System
- Zeitbasiertes Captcha verhindert automatisierte Logins
- Optional Text-/Zahlen-Captcha bei auffälligem Verhalten
- Vollständig konfigurierbar über
config.json - Web-Interface für Benutzerverwaltung (inkl. Logout-Buttons)
Vergleich BasicAuth ↔ m.b.a.
| Feature | BasicAuth | m.b.a. |
|---|---|---|
| Paßwort-Speicherung | .htpasswd-Datei | JSON-Datei mit Hash |
| Paßwort-Validierung | Nein | Ja, (Mindestlänge, Groß-/Kleinbuchstaben, Zahl, Sonderzeichen) |
| Sicherheit Erweiterbar | Nein | Ja, ( 2FA Zwei-Faktor-Authentifizierung: Zusätzlicher Sicherheitsfaktor neben dem einfachen Paßwort. Nutzer müssen einen zweiten Code eingeben, z. B. aus einer App (TOTP) oder per E-Mail, bevor der Zugriff gewährt wird. , reCaptcha Ein von Google bereitgestellter Dienst, der automatisch zwischen menschlichen Nutzern und Bots unterscheidet. Meist sichtbar als Auswahl von Bildern oder unsichtbar im Hintergrund. Schutzmaßnahme gegen automatisierte Angriffe. , SWAF Softwarebasierte Web Application Firewall: Firewall die schädliche Anfragen erkennt und blockiert. Ermöglicht flexible Regeln, Score-basierte Blockierung und temporäre Sperren. ) |
| Session-Mechanismus | HTTP Auth Header | Token-basiert, ohne PHP-Session |
| Bruteforce-Schutz | Nein | Ja, inkl. Auto-Cleanup |
| Captcha-Schutz | Nein | Ja, zeit- und textbasiert |
| Benutzerverwaltung | Manuell (.htpasswd) | Web-Interface mit Logout |
| Anpaßbare UI | Nein | Einfaches Formular / HTML |
| Transparenz für Nutzer | Keine Info | Optional im Dashboard (Admin-only) |
Vorteile / Gleichwertige Features
- m.b.a. in das zu schützende Verzeichnis kopieren, Schutz ist direkt aktiv
- sehr einfache Ersteinrichtung je Verzeichnis
- Keine externe Anwendung notwendig – weitere Benutzerverwaltung direkt im Tool
- Erhöhte Sicherheit:
- Bruteforce-Erkennung
- fest definierte Paßwort- Validierung
- optionales Captcha
- stilles Captcha
- Captcha paßt sich automatisch an die Gefährdungslage an
- Leicht und flexibel: PHP-basiert, keine großen Libraries
- Benutzername ist case-sensitive (wie bei BasicAuth)
- Keine speziellen Kenntnisse nötig →
config.jsonmit nur 3 Optionen, kann (muß nicht) über einen Texteditor editiert werden - vereinfachte Log- Funktion und Ampel- System zur schnellen Gefährdungsanalyse
Nachteile / Einschränkungen von m.b.a.
- Läuft nur auf Apache-Servern (wie auch BasicAuth)
- Funktioniert nur, wenn die
.htaccess-Datei beschreibbar ist
Hinweis: Mehr Informationen und der freie Download folgen nach der abgeschlossenen BetaPhase. Einen ersten Einblick gibt auf dieser Testseite.