downloads per login ermöglichen?
wuelf
- programmiertechnik
hallo,
ich hoffe hie kann mir jemand helfen.
ich möchte dateien zum download bereitstellen, allerdings sollen nur bestimmte registrierte personen bestimmte dateien downloaden können. also person x soll nach login datei 1, 5 und 7 downloaden können und person y datei 2, 4 und 9 usw. dabei sollen alle dateien in einem ordner liegen und ich möchte ein webinterface einrichten mit dem ich problemlos jederzeit neue nutzer eintragen und deren download-rechte bestimmen und verändern kann.
wie könnte das gehen ? ich habe bisher wenig ahnung von cgi´s, php und so, bin aber recht fit in html und flash(incl. action script)
ich suche nach einer recht simplen lösung, die sicherheits-anforderungen sind eher gering.
ich habe darüber nachgedacht es mit einer mysql db zurealisieren in der name, login und links zu den dateien gespeichert sind, aber jeder halbwegs schlaue mensch kann dann den ordner direkt öffnen und downloaden was er will, so einfach sollte es nicht sein.
ich hoffe jemand ist gewillt mir zu helfen,
danke
wuelf
hi!
ich möchte dateien zum download bereitstellen, allerdings sollen
nur bestimmte registrierte personen bestimmte dateien downloaden
können.
Ich gehe davon aus, dass deine Benutzer sich schon irgendwie zu
erkennen gegeben haben, entweder über .htaccess oder eine beliebige
andere Login-Methode.
Das Anzeigen des Verzeichnis-Inhalts kannst du über eine Einstellung
des Webservers verhindern, zb. durch einen Eintrag in der .htaccess.
"Options -Indexes" müsste dort weiterhelfen. Dann können deine
Besucher schonmal die fremden Dateien nicht runterladen, wenn sie
den Dateinamen nicht kennen. In diesem Fall könntest du also die von
dir bereits genannte Lösung oder eine vergleichbare verwenden, indem
du einfach die Links ausgibst oder die Leute per Location:-Header
umleitest, was es für Laien noch etwas schwieriger macht, den Link
einfach weiter zu geben.
Das Anzeigen des Verzeichnis-Inhalts kannst du übrigens auch ohne
den Weg über die Server-Konfiguration verhindern, indem du einfach
eine index.html-Datei[1] in das Verzeichnis legst.
Falls die Gefahr besteht, dass die Leute untereinander die Dateinamen
austauschen, könntest du zb. jede Datei in ein eigenes Verzeichnis
legen und für jedes dieser Verzeichnisse eine .htaccess anlegen, die
regelt, welcher Benutzer auf das entsprechende Verzeichnis zugreifen
kann.
Ist eine .htaccess-Lösung auch nicht möglich, kannst du auch die
Binär-Dateien direkt von einem CGI-Skript ausgeben lassen, das vorher
den Benutzer überprüft. Den richtigen Dateinamen erhälst du, indem
du diesen einfach als PATH_INFO an die Skript-URL anhängst. Das
könnte zb. so aussehen:
http://www.server.de/cgi-bin/skript.cgi/datei.zip
Das CGI-Skript müsste dann nur noch die Daten direkt aus der Binär-
Datei lesen -- im Binärmodus natürlich -- und diese mit geeignetem
HTTP-Header -- Content-type: application/octet-stream vermutlich --
an den Browser weitersenden.
bye, Frank!
[1] index.html steht in diesem Fall stellvertretend für beliebige
mögliche DirectoryIndex-Dateien.