Ich würde das sicher nicht extern angreifen. Du bekommst die Dateien nicht so einfach versteckt.
Intern gibt es dazu eine recht einfache Lösung:
[xdownload=IDs||t:ags||f:older-IDs/]
1. Eingebautes Login verwenden
2. Die betreffende User dort eintragen und den CP Login einsetzen und gegen die BE DB prüfen.
3. Nun in der Dateizentrale den betreffenden Dateien als "Tag/Schlagwort:" den Anmeldenamen des Users mitgeben.
- Vielleicht noch die Datei kennzeichnen mit "[x] geschützter Download im Frontend".
4. Diesen TAG einsetzen.
Wenn ein unsinniger Name für ein Template angegeben wird dann generiert der RT einen einfachen Link.
Code: Select all
<!--LOGGED_IN_START//-->
.....
[xdownload=t:[PHP]echo $_SESSION[$_REQUEST["PHPSESSID"]];[/PHP]:nix,,,1, /]
.....
<!--LOGGED_IN_END//-->
erzeugt einen Link:
Code: Select all
<ul class="fileDownload">
<li><a href="download.php?f=ef08dfec18f369c305c0d0fe4a5adf3d" target="_self">doc-test.doc</a></li>
</ul>
Vorteil: Die Dateien sind ohne ein Login von außen nicht erreichbar, wenn die .htaccess in /filearchive/ aktiv ist.
Wenn die Identifikation gegenüber der Datei mit dem einfachen Useranmeldenamen zu schwach ist, weil das vielleicht ein recht einfacher Name sein könnte der mit anderen Tags verwechselt werden kann, dann den "Tag/Schlagwort:" künstlich erweitern und bei der Datei eintragen.
Z.B. ##Anmeldename##
Code: Select all
[xdownload=t:[PHP]echo '##'.$_SESSION[$_REQUEST["PHPSESSID"]].'##';[/PHP]:nix,,,1, /]
Natürlich kann bei einem brauchbaren CP-Listen Template anstelle von "nix" die ganze Sache schicker gestaltet werden.
Obendrein kannst du mehr als eine Datei anbieten bei der das Schlüsselwort trifft wenn nötig (aus der "1" wird dann z.B. ein "5").
Und es ist eine saubere interne Lösung bei der man nicht Gefahr läuft das System zu öffnen.
Knut