PowerScripts

PowerAccess

Projekt PowerAccess
Aktuelle Version 2.00
Beschreibung

htaccess-Verwaltungstool für Apache-Webserver

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.

Repository: github.com/schubertnico/PowerAccess

Systemvoraussetzungen

  • PHP 8.4 oder höher
  • 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

  1. Repository klonen oder ZIP herunterladen:
    git clone https://github.com/schubertnico/PowerAccess.git
  2. Das Verzeichnis PowerAccess (oder nur die paccess.php) auf den Webserver hochladen
  3. Schreibrechte setzen: chmod 755 /pfad/zu/PowerAccess
  4. Im Browser aufrufen: http://deine-domain.de/PowerAccess/paccess.php
  5. Wichtig: Das PowerAccess-Verzeichnis selbst als erstes mit einem Passwort schützen!

Option 2: Docker (empfohlen für Entwicklung)

  1. Repository klonen und in das Verzeichnis wechseln
  2. Container bauen und starten:
    cd .docker && docker compose build && docker compose up -d
  3. Im Browser aufrufen: http://localhost:8084/paccess.php

Schnellstart-Anleitung

  1. Benutzer anlegen: Öffne PowerAccess, klicke auf "User", gib Benutzername und Passwort ein
  2. Verzeichnis schützen: Klicke auf "Verzeichnisse", navigiere zum gewünschten Ordner, wähle die berechtigten Benutzer aus
  3. Fertig: Der Verzeichnisschutz ist sofort aktiv

Lizenz

PowerAccess steht unter der MIT-Lizenz und kann frei verwendet, modifiziert und weitergegeben werden.

Copyright (c) 2001-2005 PowerScripts (Stefan "BFG" Kraemer)
Copyright (c) 2007-2026 PowerScripts (Nico Schubert)

Features

Benutzerverwaltung

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.
  • Schutz erstellen: Wähle ein Verzeichnis aus und bestimme per Checkbox, welche Benutzer Zugriff erhalten sollen. PowerAccess erstellt automatisch eine korrekt konfigurierte .htaccess-Datei mit allen notwendigen Einstellungen.
  • 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. Die .htaccess-Datei wird dabei gelöscht und das Verzeichnis ist 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)
  • .docker/ - Docker-Konfiguration für Entwicklung
  • composer.json - PHP-Abhängigkeiten
  • phpstan.neon - PHPStan-Konfiguration
  • rector.php - Rector-Konfiguration
  • README.md - Ausführliche Dokumentation
[ Download ]