Download Center

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Download Center

    Hallo, ich bin gerade dabei ein Download Center zu bauen. Die files kommen via FTP auf dem Server und sind somit nicht in einer DB registriert.

    Das Problem ist, das nicht jeder auf die Daten zugriff haben darf. Nur user die das dürfen, bekommen alle Ordner und Datein angezeigt.

    Das Problem ist aber, das man via einem Direktlink zu der Filre das ganze Sicherheitssystem aushebelt. Mit htaccess den Ordner komplett wegsprren, geht auch nicht. Dann funktioniert nur die Übersicht aber kein Download mehr.

    Eine lösung die ich hätte, wären Fakelinks, aber darauf möchte ich erst zurückgreifen, wenn nichts anderes mehr geht.

    Ich hatte mir das eigentlich so vorgestellt, ist der User eingeloggt, .htacces ist ungüötig, ist der User nicht eingeloggt greift htaccess ein und sperrt alles. Problem ist ich müsste htacces irgendwie mittteilen, das der zugriff auf den download ordner gestattet ist. Aber habe irgendwie keine Ahnung wo ich da ansetzen soll.

    Hat jemand eine idee?
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • Willst du das mit PHP oder mit .htaccess realisieren? Mit PHP würde ich die Dateien in einen Odner außerhalb des Webroots speichern und das einloggen mit PHP verwalten, sowie den Dateitranfer. Bei der .htacccess-Lösung musst du nur die Userkonten in die .htaccess/.htuser eintragen, danach können du die drauf zugreifen die Benutzername & Kennwort kennen
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • Also das ich die außerhalb des Webroots speichere schwebt mir auch vor. Login läuft via PHP, Nur wie lasse ich den Daten transfare über PHP laufen. Wenn die files außerhalt des DocumentRoots liegen gibts ja eh keine Direktlinks mehr. Die frage ist nun, wie startet man da einen Download? Einen Ordner außerhalb des DocumentRoots auszulesen ist nicht das Problem :)
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • Du kannst auch PHP und htaccess kombinieren: [coderwiki]HowTos/HTTP-Authentifizierung[/coderwiki].

    Wenn du mit eingeloggt bist, weist du einfach die Variablen $_SERVER['PHP_AUTH_USER'] und $_SERVER['PHP_AUTH_PW'] zu.
    Hast du die Downloads in einem Unterordner via .htaccess geschützt werden diese übernommen - auch ohne PHP.

    Ein .htaccess Schutz auf einer HTTP Seite birgt natürlich immer ein kleines Risiko, weil alles im Klartext übertragen wird.
  • Also die http_functionen geht bei mir nicht, bekomma ein error, 'Coud nocht found http_bal_function' Habe die neuste PHP-Version und in der php.net doku steht: Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.

    Das macht mich schon etwas stutzig, Laut google soll ich PECL_HTTP installieren auch in der Doku steht das ich das ab PHP5.1.3 nicht mehr brauche, naja dann war mir das einfach zu dumm :)

    Habe nun eine andere Lösung gefunden.

    Quellcode

    1. public function downloadAction()
    2. {
    3. $path = $this->_request->getParam('path', 0);
    4. $file = $this->_request->getParam('file', 0);
    5. $path = str_replace('-', '/', $path);
    6. header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    7. header('Content-Description: File Transfer');
    8. header('Content-Type: application/octet-stream');
    9. header('Content-Length: ' . filesize($path.'/'.$file));
    10. header('Content-Disposition: attachment; filename=' . basename($file));
    11. readfile($path.'/'.$file);
    12. }
    Alles anzeigen



    Somit kann ich die Datein auch wunderbar außerhalb des DocumentRoots aufbewahren. Somit sind die files auch einigermaßen geschützt, was ich noch machen werde, sind Fakelinks, da die links sonst so häslich sind, und man kann ablesen das ich nicht nur ein htdocs order habe sondern auch ein application directory, das passt mir nicht, aber im großen und ganzen funktioniert das mit der Funktion.

    Danke für die Hilfe.
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.