Dateien vor direktem Download schützen

Extension Key: fal_securedownload

Einleitung

Manchmal möchte man bestimmte Dateien nur angemeldeten Benutzern auf der Website zur Verfügung stellen. Dazu kann man Seiten oder Inhaltselemente nur für angemeldete Benutzer freischalten.

Allerdings können Dateien trotzdem von jedermann heruntergeladen werden, sofern der direkte Link zu diesen Dateien bekannt ist. Denn üblicherweise werden Dateien irgendwo unterhalb des fileadmin-Verzeichnisses abgelegt und könnten über einen Link in der Art

domain.de/fileadmin/user_upload/mein_pdf.pdf

direkt geladen werden.

Mit der Extension fal_securedownload kann man Dateien noch besser schützen, da hier ein eigener Datei-Speicher (File storage) verwendet wird, der auch ausserhalb des sogenannten Document Roots, also ausserhalb des TYPO3-Projekts, liegen kann. Die Links auf diese Dateien werden dann auch nicht im Klartext angezeigt, sondern der Download erfolgt dann über die Extension.

Ausserdem können Verzeichnisse auch nur für bestimmte Frontend-Benutzergruppen freigegeben werden, sodaß man hier die doppelte Sicherheit hat.

In dem folgenden Video und der Textanleitung zeigen wir die Einrichtung dieser Extension.

Voraussetzung: Frontend-Benutzergruppen und -Benutzer sollten schon eingerichtet sein, ebenfalls die Möglichkeit eines Frontend-Logins. 

Videoanleitung

Die Videoanleitung zeigt die Einrichtung und Nutzung der Extension.

Sämtliche im Video gezeigten Schritte finden Sie nachfolgend auch in Textform.

Installation

fal_securedownload im Erweiterungsmanager installieren

Die Extension kann wie üblich über den Erweiterungsmanager installiert werden. Suche Sie dazu im Bereich "Erweiterungen hinzufügen" nach dem Extension-Key fal_securedownload. 

Klicken Sie anschließend auf die Schaltfläche links, um die Erweiterung herunterzuladen und zu installieren. Eine weitere Konfiguration der Erweiterung ist nicht notwendig.

Neuen Dateispeicher (File storage) einrichten

Verzeichnis anlegen

Im nächsten Schritt muss ein neuer Datei-Speicher (File Storage) angelegt werden. In diesem Beispiel werden wir ein Verzeichnis ausserhalb des sogenannten Document Roots, also ausserhalb unseres TYPO3-Projektverzeichnisses, anlegen.

Das hat den Vorteil, dass dieses Verzeichnis nicht über einen Webbrowser aufgerufen werden kann.

Melden Sie sich mit Ihren SSH-Zugangsdaten auf der Shell an und legen Sie ein Verzeichnis für die geschützten Dateien an. Als Beispiel legen wir im Verzeichnis typo3cms/ ein Verzeichnis namens secure an mit dem Befehl

mkdir secure

Dateispeicher (File storage) anlegen

Neuen Dateispeicher erzeugen

Im nächsten Schritt legen Sie im Backend von TYPO3 einen neuen Dateispeicher an.

Wechseln Sie dazu in das Listen-Modul auf die oberste Seite mit der ID 0 und legen Sie einen neuen Datensatz vom Typ "Dateispeicher" an.

Am einfachsten klicken Sie bei dem vorhandenen Standard-Speicher "fileadmin" auf die Plus-Schaltfläche.

Absoluten Serverpfad auslesen

Den absoluten Serverpfad anzeigen

Für den nächsten Schritt benötigen Sie den absoluten Pfad zum Verzeichnis secure auf dem Server.

Wechseln Sie also wieder auf die Shell und gehen Sie in das Verzeichnis secure mit dem Befehl

cd secure

Den Serverpfad lassen Sie sich anzeigen mit dem Befehl

pwd

Die Ausgabe dieses Befehls fügen Sie in Ihre Zwischenablage ein (mit der Maus markieren, dann die Tastenkombination strg+c (Windows, Linux) bzw. cmd+c (Mac)).

Dateispeicher konfigurieren

Serverpfad einfügen
Checkbox "Ist öffentlich verfügbar?" deaktivieren
Nach dem Speichern kontrollieren, ob "Ist online?" aktiv ist
Der neue Dateispeicher sollte jetzt schon funktionieren

Wechseln Sie jetzt wieder in das Backend in die Einstellungen des neuen Dateispeichers.

Vergeben Sie im Reiter Allgemein einen beliebigen Titel, zum Beispiel Secure.

Im Reiter Configuration fügen Sie im Eingabefeld Pfad zur Basis den absoluten Serverpfad ein, den Sie im vorhergehenden Schritt ausgelesen haben (Tastenkombination strg+v (Windows, Linux) bzw. cmd+v (Mac)). Fügen Sie am Ende des Pfades einen Schrägstrich (Slash) hinzu!

Bei Pfadtyp wählen Sie "absolut"

Im Reiter Access deaktivieren Sie die Checkbox bei "Ist öffentlich verfügbar?"

Klicken Sie dann auf Speichern.

Kontrollieren Sie jetzt, ob im Bereich Access die Checkbox bei "Ist online?" aktiv ist!

Wenn Sie jetzt in das Dateiliste-Modul wechseln, sollten Sie den neuen Dateispeicher schon sehen. Falls jetzt nur eine TYPO3-Fehlermeldung erscheint, kontrollieren Sie noch einmal, ob die Checkbox bei "Ist online?" aktiv ist.

Im Dateiliste-Modul können Sie jetzt innerhalb des neuen Dateispeichers wie gewohnt Ordner anlegen und Dateien hochladen. 

In diesem Beispiel legen wir einen Ordner namens test1 an und laden ein paar beliebige Dateien zum Testen in den Ordner hoch.

Verzeichnisberechtigungen einstellen

Im Kontextmenü des Ordner "Folder permissions" auswählen
Eine oder mehrere Gruppen zuweisen

Jetzt können Sie dem zuvor erstellen Ordner Benutzergruppen zuweisen.

Klicken Sie dazu mit der linken Maustaste auf das Ordnersymbol und wählen im Kontextmenü den Punkt Folder permissions.

In der sich nun öffnenden Maske sehen Sie im rechten Bereich alle verfügbaren Benutzergruppen. Durch anklicken können Sie eine oder mehrere Gruppen dem Ordner zuweisen.

Alternativ können Sie auch den Punkt "Anzeigen, wenn angemeldet" wählen, dann sehen Benutzer die Inhalte des Ordners, unabhängig davon, welcher speziellen Gruppe sie angehören.

Ausgabe der Verzeichnisse im Frontend

Inhaltselement Allgemeines Plug-In auswählen

Die Erweiterung bringt auch ein eigenes Plugin mit, um einen Verzeichnisbaum im Frontend darzustellen.

Legen Sie ein neues Inhaltselement an und wählen Sie im Reiter Plug-Ins das Element Allgemeines Plug-In

Plug-In File tree auswählen

Im Inhaltselement wählen Sie im Reiter Plug-In in der Auswahlbox den Punkt File tree aus.

Den neuen Dateispeicher auswählen

In der Auswahlbox Storage wählen Sie den neu angelegten Dateispeicher, in unserem Beispiel Secure, aus.

Ordner auswählen

In der Auswahlbox Folder wählen Sie den Ausgangspunkt für den Verzeichnisbaum aus.

Verzeichnisbaum im Frontend

Sofern Sie im Frontend als Benutzer angemeldet sind, können Sie jetzt den Verzeichnisbaum sehen.

Links auf geschützte Dateien in Inhaltselementen

Link auf eine Datei im Text & Medien Inhaltselement

Natürlich sind die Dateien auch vor dem direkten Download geschützt, wenn Sie sie in normalen Inhaltselemente verlinken. 

Als Beispiel legen Sie ein neues Inhaltselement an vom Typ Text & Medien.

Im Text-Feld können Sie einen beliebigen Text eingeben und mit dem Link-Assistenten einen Link auf eine Datei im Dateispeicher Secure erstellen.

Fehlermeldung bei unberechtigten Aufruf einer Datei

Wenn jetzt jemand im Frontend die Datei aufrufen will, ohne als Frontend-Benutzer angemeldet zu sein, erhält er nur eine Fehlermeldung.

In der Dokumentation der Extension ist zudem beschrieben, wie statt der Fehlermeldung auch eine Umleitung zu einer beliebigen Seite realisiert werden kann.