Versteckspiel mit Dateien

Cover Easy-File-Lock

Du willst Dateien in WordPress nur bestimmten Nutzern zeigen – ohne Plugin-Overkill? Wir haben da was Kleines gebastelt: eine minimalistische, dokumentierte Lösung mit PHP. Nicht perfekt, aber nützlich.

Ausgangspunkt war ein eigentlich simples, aber nerviges Problem:

Wie kann ich bestimmten Nutzergruppen in WordPress bestimmte Dateien zeigen – ohne Plugin-Wahnsinn?

Klar, es gibt unzählige Plugins. Aber die meisten waren zu gross, zu kompliziert, zu speziell – oder haben sich mit anderen Plugins gebissen. Für meinen Zweck? Völlig überdimensioniert.

Im Rahmen eines Workshops haben wir das Thema dann konkret angepackt. Erst dachten wir: “Dann schreiben wir halt selbst ein Plugin.”

Spoiler: Keine gute Idee!

Denn schnell zeigte sich: Server ticken unterschiedlich. Manche Hoster lassen kaum Server-Konfiguration zu, andere sperren Verzeichnisse ausserhalb des WebRoots. Wir wollten aber keine High-End-Sicherheitslösung – nur eine pragmatische Barriere für neugierige Links und KI-unterstützte Crawler.

Die Lösung: Wenig Code, viel Wirkung

Also schrieben wir ein kleines Setup, das ohne viel Schnickschnack funktioniert. Kein Fort Knox, aber für viele Anwendungsfälle sicher genug. Und: leicht anpassbar, ganz ohne Plugin-Overhead.

Im Wesentlichen braucht es nur drei Dateien – verteilt auf zwei Verzeichnisse –, zusätzlich zu den Dateien, die du schützen willst. Das macht die Lösung einfach, übersichtlich und schnell verständlich.

Der Aufbau: Zwei Verzeichnisse, drei zentrale Dateien

1. protected (innerhalb des WebRoots)

Hier wird der Zugriff kontrolliert:

  • .htaccess: Leitet alle Dateianfragen an check-access.php weiter

  • check-access.php: Prüft, ob die Person Zugriff auf die angeforderte Datei haben darf – zum Beispiel, ob sie zur richtigen WordPress-Nutzergruppe gehört und nur erlaubte Dateitypen anfordert. Gibt die Datei nur dann aus, wenn die Berechtigung stimmt.

2. secure-files (ausserhalb des WebRoots)

Hier liegen die geschützten Dateien:

  • config/secure-config.php: Hier legst du fest, welche Gruppen auf welche Dateien zugreifen dürfen

  • Die geschützten Dateien, z. B. gruppe-1/test.pdf

Wird z. B. https://deine-domain.ch/protected/gruppe-1/test.pdf aufgerufen, prüft das Skript den Zugriff – und liefert nur bei Berechtigung die Datei aus.

Eine einfache Lösung, vielseitig einsetzbar

Wir wollten kein weiteres Mammut-Plugin bauen, sondern ein schlankes Beispiel, das leicht anpassbar ist – oder als Grundlage für eigene Lösungen dienen kann.

Dieses Projekt haben wir gemeinsam im Workshop-Team entwickelt und auch so dokumentiert: ausführlich, nachvollziehbar und so gestaltet, dass es als Grundlage für weitere Workshops oder eigene Anpassungen dienen kann.

Den vollständigen, dokumentierten Code in Englisch findest du hier:
GitHub: Easy-File-Lock

Feedback, Ideen oder Erfahrungsberichte? Immer gerne.

Wir übernehmen natürlich keine Garantie für absolute Sicherheit – aber vielleicht sparst du dir damit Zeit, Nerven und ein paar Plugin-Abstürze.

Viel Spass beim Ausprobieren!

|

|

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert