PowerAccess ist ein leistungsstarkes, PHP-basiertes Tool zur einfachen Verwaltung von htaccess-Verzeichnisschutz über eine komfortable Weboberfläche. Mit PowerAccess können Webmaster und Administratoren ohne tiefgreifende technische Kenntnisse Verzeichnisse auf ihrem Webserver mit einem sicheren Passwortschutz versehen, Benutzer verwalten und Zugriffsrechte flexibel anpassen.
Das Tool wurde ursprünglich von Stefan "BFG" Kraemer entwickelt und wird seit 2007 von Nico Schubert weitergeführt und modernisiert. Die aktuelle Version wurde vollständig auf PHP 8.4 migriert und mit modernen Sicherheitsfunktionen ausgestattet.
Version 2.0.1 behebt einen Fehler der 2.0.0 beim Schutz von Unterordnern und lässt vorhandene Einträge in einer .htaccess, etwa Rewrite-Regeln, unangetastet.
Apache Webserver mit aktiviertem mod_rewrite und mod_auth_basic
Schreibrechte für das Verzeichnis, in dem PowerAccess installiert ist (für die .htpasswd-Datei)
Schreibrechte für alle Verzeichnisse, die geschützt werden sollen (für .htaccess-Dateien)
Docker (optional, für lokale Entwicklung und Tests)
Installation
Option 1: Direkte Installation auf dem Webserver
Repository klonen oder ZIP herunterladen: git clone https://github.com/schubertnico/PowerAccess.git
Das Verzeichnis PowerAccess (oder nur die paccess.php) als eigenen Ordner direkt ins Webverzeichnis hochladen, z. B. nach htdocs/PowerAccess/. Verwaltet werden alle Verzeichnisse ab dem Ordner darüber, also die ganze Website samt PowerAccess selbst.
Die umfassende Benutzerverwaltung ermöglicht die vollständige Kontrolle über alle Zugriffsberechtigungen:
Benutzer anlegen: Erstelle neue Benutzer mit individuellem Benutzernamen und sicherem Passwort. Die Passwörter werden mit dem modernen password_hash()-Algorithmus (bcrypt) verschlüsselt und in einer .htpasswd-Datei gespeichert - nicht mehr mit dem veralteten und unsicheren crypt().
Benutzer löschen: Entferne nicht mehr benötigte Benutzer mit einem Klick aus dem System. Die Änderungen werden sofort wirksam.
Passwort-Validierung: Bei der Erstellung eines neuen Benutzers muss das Passwort zur Bestätigung zweimal eingegeben werden, um Tippfehler zu vermeiden.
Benutzername-Validierung: Benutzernamen dürfen nur Buchstaben (a-z, A-Z), Zahlen (0-9), Unterstriche (_) und Bindestriche (-) enthalten.
Duplikat-Prüfung: Das System verhindert automatisch das Anlegen von Benutzern mit bereits existierenden Benutzernamen.
Verzeichnisschutz
Der Kern von PowerAccess - schütze beliebige Verzeichnisse auf deinem Webserver:
Verzeichnisnavigation: Durchsuche die komplette Verzeichnisstruktur deines Webservers über eine intuitive, klickbare Oberfläche. Navigiere einfach durch Ordner, um das gewünschte Verzeichnis zu finden. Bereits geschützte Ordner sind gekennzeichnet.
Schutz erstellen: Wähle ein Verzeichnis aus und bestimme per Checkbox, welche Benutzer Zugriff erhalten sollen. PowerAccess schreibt die nötigen Einstellungen als eigenen, markierten Abschnitt in die .htaccess. Vorhandene Regeln in der Datei bleiben erhalten.
Schutz bearbeiten: Ändere nachträglich jederzeit die Zugriffsrechte für ein bereits geschütztes Verzeichnis. Füge neue Benutzer hinzu oder entferne bestehende Berechtigungen.
Schutz löschen: Entferne den Passwortschutz von einem Verzeichnis mit einem Klick. Entfernt wird nur der Abschnitt von PowerAccess; enthält die .htaccess sonst nichts, wird sie gelöscht. Das Verzeichnis ist danach wieder frei zugänglich.
Benutzerdefinierter Titel: Lege einen eigenen, aussagekräftigen Titel für den Login-Dialog fest, der dem Besucher angezeigt wird (z.B. "Geschützter Bereich", "Admin-Login" oder "Kundenportal").
Mehrfachauswahl: Erlaube mehreren Benutzern gleichzeitig den Zugriff auf ein Verzeichnis - ideal für Teams oder Arbeitsgruppen.
Vererbung: Ein Verzeichnisschutz gilt automatisch auch für alle Unterverzeichnisse.
Sicherheitsfunktionen
PowerAccess wurde mit modernen Sicherheitsstandards entwickelt:
XSS-Schutz (Cross-Site-Scripting): Alle Benutzereingaben werden vor der Ausgabe mit htmlspecialchars() escaped. Eine zentrale e()-Funktion stellt sicher, dass keine unbehandelten Eingaben ausgegeben werden.
CSRF-Schutz (Cross-Site-Request-Forgery): Jedes Formular enthält ein kryptografisch sicheres CSRF-Token, das bei der Verarbeitung validiert wird. Dies verhindert, dass Angreifer Aktionen im Namen eines angemeldeten Benutzers ausführen können.
Path Traversal-Schutz: Alle Pfadangaben werden mit realpath() validiert und gegen den erlaubten Basisordner geprüft. Dies verhindert zuverlässig, dass Angreifer auf Verzeichnisse außerhalb des erlaubten Bereichs zugreifen (z.B. durch ../-Sequenzen).
Sichere Passwort-Speicherung: Passwörter werden mit dem modernen password_hash()-Algorithmus (bcrypt) verschlüsselt. Der veraltete und unsichere crypt()-Algorithmus wird nicht mehr verwendet.
Datei-Locking: Alle Dateizugriffe verwenden LOCK_EX (exklusive Sperre), um Race Conditions bei gleichzeitigen Zugriffen zu vermeiden und Datenkonsistenz zu gewährleisten.
Input-Validierung: Benutzernamen werden auf erlaubte Zeichen geprüft, bevor sie verarbeitet werden.
Benutzeroberfläche
Eine moderne, benutzerfreundliche Oberfläche für effizientes Arbeiten:
Responsive Design: Die Oberfläche passt sich automatisch verschiedenen Bildschirmgrößen an - von Desktop bis Tablet.
Übersichtliche Navigation: Schneller Wechsel zwischen Benutzerverwaltung, Verzeichnisschutz und FAQ über eine klare Menüführung.
Statusmeldungen: Farblich hervorgehobene Erfolgs- und Fehlermeldungen informieren sofort über den Status jeder Aktion.
Bestätigungsdialoge: Kritische Aktionen wie das Löschen von Benutzern oder Schutzeinstellungen erfordern eine explizite Bestätigung - versehentliches Löschen wird verhindert.
Modernes Design: Ansprechendes dunkles Farbschema mit klarer Struktur und guter Lesbarkeit.
PHP 8.4 Kompatibilität
Die aktuelle Version wurde vollständig auf PHP 8.4 migriert und modernisiert:
declare(strict_types=1) für strenge Typprüfung aktiviert
Veraltete Funktionen ersetzt: split() durch explode(), ereg() durch preg_match()
Moderne PHP-Funktionen: str_starts_with() statt strpos() === 0
Null-Coalescing-Operator ?? für sichere Default-Werte
Alle Array-Keys sind korrekt quotiert
Kurze PHP-Tags <? durch <?php ersetzt
Moderne HTML5-Dokumentstruktur
Entwickler-Tools
Für Entwickler stehen moderne Werkzeuge zur Verfügung:
Docker-Unterstützung: Fertig konfigurierter Docker-Container (PHP 8.4 + Apache) für einfache lokale Entwicklung
PHPStan: Statische Code-Analyse auf Level 6 zur Fehlererkennung
Rector: Automatische Code-Migration und Modernisierung
Composer: Dependency-Management für alle Entwickler-Tools
Dateistruktur
Übersichtliche Projektstruktur:
paccess.php - Hauptanwendung (alles in einer Datei)