Zum Inhalt springen

Geschützte Downloads (Fileadmin)

Erstellt am 26. Januar 2006 · 20 Antworten · letzte Antwort am 2. Februar 2006 · Seite 1 von 2

Tags: Dateien & FAL, Frontend-Benutzer, Frage

Andrea_Herzog ·

Hallo Falk,
stimmt, wir hatten uns missverstanden.
Du hast absolut recht. Wenn ich den Pfad kenne, dann kann ich an die Datei.
Ist ein echtes Problem. Wenn ich den Dateipfad und den Dateinamen kenne, dann kann ich an alles ran.

Ich bin jetzt etwas daneben. Denn das sollte natürlich nicht funktionieren.
Ich habe aber keine Idee dazu.

Das Problem ist ja nicht ganz klein.
Selbst wenn ich einen Ordner mit "Geheimdokumenten" schützen könnte, dann muss immer noch gewährleistet sein, dass die Redakteure ihre Sachen auch dort ablegen und nicht einfach irgendwo ablegen. Ansonsten müsste man alle Ordner irgendwie schützen können oder zu einem Abbruch führen, wenn eine bestimmte URL aufgerufen wird.

Keine Ahnung. Mache mich aber mal schlau.

Gruß
Andrea

mdlc ·

Bin mir zwar nicht sicher, ob das geht, aber prinzipiell kann man es ja auch mit htaccess schützen (zumindest den "großen Datenklau von Extern").

Andrea_Herzog ·

Hallo mdlc,

wenn du nicht sicher bist, hast du es denn schon mal getestet?
Wenn ja, schreib doch bitte mal was dazu.
Gruß
Andrea

ThaWurm ·

Hey,

mit htaccess kannst es immer schützen - das Problem ist nur, dass du mit htaccess keine Typo3-BE-Gruppen ansprechen kannst - ist also nicht wirklich elegant.

mfg-

FalkWalter ·

hmmmmmmmmm, man müsste als alle FE- und BE-Gruppen aus Typo3 exportieren und in ne .htusers und .htgroups schreiben... zudem sollte man wohl noch die .htaccess aus Typo3 aus verändern können...

Nur mal so als Idee/Abschreckung...

Falk

lulatsch ·

Hi,

FalkWalter schrieb

Wenn ich Dateien habe,

- die wirklich nur intern verwendet werden sollen,
- die ich im fileadmin/ - Pfad ablege,
- die nur in geschützten Bereichen angezeigt bzw. zum Download angeboten werden,

kann ich die von außen durch den Eingabe des Pfads z. B. "http://meinServer.de/fileadmin/interneDoks/dasWichtigsteBetriebsgeheimnis.pdf"
aufrufen oder nicht?

das Problem taucht ja hin und wieder im Forum auf, nur hat scheinbar noch keiner wirklich eine Lösung.

Zwei prinzipielle Varianten könnte ich mir vorstellen:

a) die Dateien als Blob in der DB ablegen, da kann man ja nur aus Typo heraus drauf zugreifen

b) sobald man auf einer geschützten Seite angemeldet ist und auf eine Datei zugreifen will, erzeugt Typo z. B. in /fileadmin/downloads ein link auf diese Datei (die in einem per htaccess geschützten Bereich des Filesystems außerhalb /fileadmin/downloads liegt); sobald die Abmeldung erfolgt werden die links wieder gelöscht

Für beide Varianten wäre sicher eine Erweiterung zu programmieren, aber ich könnte mir vorstellen, dass das realisiert werden kann. Voraussetzung wäre hier allerdings ein Unix-basiertes System, damit das mit den Softlinks klappt.

Gegen Variante a) spricht natürlich ggf. die Dateigröße, aber evtl. kann man dafür ja nicht die Typo-DB, sondern vielleicht eine extra DB verwenden.

Variante b) wäre sicher einfacher zu realisieren, und die meisten Webserver dürften zur Zeit eh' auf Unix-Basis laufen. Ob das unter Windows mit den links irgendwie zu realisieren wäre, bliebe zu untersuchen. Unter Unix/Linux könnte man sich sogar schon abmelden (und damit den link löschen), während der Download noch läuft: der link ist erst dann wirklich weg, wenn keiner mehr drauf zugreift.

lulatsch

ThaWurm ·

He lutlatsch,

wenn man mit den Typo3-BE-Usern und Gruppen konsistent bleiben will, klappt ohnehin nur Variante a) - wie würde man mit .htaccess die Berechtigungen am evident zu halten (manuell?)...

und für Variante a) gibts auch bereits eine Extension (fw_filer - http://typo3.org/extensions/repository/search/fw_filer/) die iW das macht, was du angedeutet hast (Files in DB ablegen)
-

FalkWalter ·

Servus,

ja, aber halt die Dateigröße macht mir bei Variante a) Sorgen. Leider schaffen es Leute halt immer wieder, 50 MB große Word Dokumente und sogar 70 MB Powerpoint Präsentationen zu erstellen (das soll bei mir mit Hilfe von Typo3 zwar besser werden, aber...).

Deshalb die Idee mit htaccess. Leider kenne ich mich mit Unix nicht gut aus (outing :o ). Daher fällt bei mir Variante b) wohl vorerst flach (das Prinzip der Symlinks ist aber total genial - warum kann das Windows nicht?)

Grüßle
Falk

lulatsch ·

Hi,

ThaWurm schrieb

wenn man mit den Typo3-BE-Usern und Gruppen konsistent bleiben will, klappt ohnehin nur Variante a) - wie würde man mit .htaccess die Berechtigungen am evident zu halten (manuell?)...

an deiner Antwort sehe ich, dass du die meine nicht verstanden hast oder ich mich nicht klar genug ausgedrückt habe 🙁

Bei meiner Variante b) braucht man eben nicht die Benutzer/Passwörter in die .htaccess schreiben. Beispiel:

/mein/datei/verzeichnis/
wird so geschützt, dass von außen kein Zugriff darauf möglich ist (geht z. B. mit .htaccess); hier befindet sich die Datei mein-download.zip
/fileadmin/downloads/
ist normalerweise leer

Wenn ein Nutzer sich anmeldet und auf die Seite mit dem link zu "mein-download.zip" geht, wird in /fileadmin/downloads ein link erzeugt zu
/mein/datei/verzeichnis/mein-download.zip
Das unix-kommando dazu könnte z. B. sein:

ln -s /mein/datei/verzeichnis/mein-download.zip /fileadmin/downloads/mein-download.zip

Also kann der Nutzer jetzt auf den link zu
...servername/fileadmin/downloads/mein-download.zip
klicken. Sobald er sich abmeldet, wird der link
wieder gelöscht

rm /fileadmin/downloads/mein-download.zip

Dabei wird aber eben nur der link wieder gelöscht und nicht die eigentliche Datei, und
nur solange der Nutzer angemeldet ist existiert der Zugriff von außen darauf.

ThaWurm schrieb

und für Variante a) gibts auch bereits eine Extension (fw_filer

Ok, schau' ich mir mal an, wäre vielleicht ganz interessant.

FalkWalter schrieb

(das Prinzip der Symlinks ist aber total genial - warum kann das Windows nicht?)

Das käme auf den Versuch an - siehe hier: http://www.it-administrator.de/aktuell/13628.html
Demnach müßte man mit dem ln Kommando aus dem Ressource-Kit den gleichen Effekt unter Windows erzielen können, was ja so eine Extension schon wieder etwas näher rückt ...

lulatsch

FalkWalter ·

Hallo, Lulatsch,

danke für Deine Klarstellung! Wie gesagt, ich bezüglich Unix nicht so bewandert... Daher super, dass Du es mir so erklärt hast.

Der Ansatz hört sich vielversprechend an. Nur habe ich da zwei Fragen:

1) Wenn der user eingeloggt ist und auf der Seite mit dem Link auf das Dokument ist, wird der Link erzeugt. Wenn er sich abmeldet (vielleicht auch, wenn er nicht mehr auf der Seite verweilt), wird der Link wieder gelöscht. Ok.
Bedeutet dann das, dass in dieser Zeit ein Fremder nicht auch den Link benutzen könnte? Bei einer Seite mit hohem Usertraffic wäre der Link dann ja dauernd verfügbar.
(Bitte nicht hauen, wenn die Frage jetzt etwas blauäugig war 😃 )

2) Kann ich mit PHP in dem UNIX-System eingreifen, sprich Deine erwähnten Befehle kommunizieren? Mit meinen bescheidenen Kenntnissen kommuniziere ich bei solchen Operationen über ne Shell.

Grüßle
Falk

lulatsch ·

Hi Falk,

freut mich, wenn ich helfen kann.

FalkWalter schrieb

Bedeutet dann das, dass in dieser Zeit ein Fremder nicht auch den Link benutzen könnte? Bei einer Seite mit hohem Usertraffic wäre der Link dann ja dauernd verfügbar.

Jein. Man könnte sicher für jeden Zugriff eine Zufallszahl oder Zeitstempel oder sowas in den link einbauen. Aber es stimmt insofern, wenn jemand zur gleichen Zeit auf den link zugreift wie der Nutzer, hindert ihn niemand. Aber genausowenig kann man ausschliessen, dass z. B. bei Verwendung eines Proxy-Servers die Datei dort zwischengespeichert wird und jemand die dort aus dem Cache holt, wenn er den link kennt.

Wenn die Dateien aber tatsächlich derartig geheim sind, dann hilft eigentlich nur noch eine Verschlüsselung der Dateien z. B. per GPG mit dem Public Key des Empfängers, dann sind alle Eventualitäten ausgeschlossen.

FalkWalter schrieb

2) Kann ich mit PHP in dem UNIX-System eingreifen, sprich Deine erwähnten Befehle kommunizieren? Mit meinen bescheidenen Kenntnissen kommuniziere ich bei solchen Operationen über ne Shell.

Ja, über den system() Befehl von php läßt sich sowas ausführen, aber es geht auch damit:
http://www.php.net/symlink
Und so bekommt man die Datei bzw. den link wieder weg:
http://www.php.net/unlink

Viele Grüße
Falko

FalkWalter ·

Hallo, Lulatsch,

superklasse!!!! Vielen, vielen Dank. Werde wohl erst in ein paar Wochen dazu kommen, aber mit dem Ansatz kann ich schon mal rumexperimentieren.

An einen Zufallsstring habe ich gar nicht gedacht...
Und dass das Ansteuern von Unix klappt. Super.

Vielen Dank!
Falk