File download nur nach Lizenzzustimmung

Dieses Thema im Forum "Web- & File-Services" wurde erstellt von rikola, 12.11.2010.

  1. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Hallo,
    ich moechte ueber meine Homepage einen Quellcode zur Verfuegung stellen, es allerdings so einrichten, dass
    1) google et al. den Code nicht einfach automatisch runterladen koennen
    2) jemand, der auf den link zum quellarchiv klickt, vorher eine Seite oder ein pop-up Fenster sieht, auf dem er bestaetigt, dass er der Lizenz zustimmt, wenn er das Archiv runterlaedt.
    Wie erreiche ich das? Bei 1) koennte eine 'robots.txt' weiterhelfen, doch habe ich noch keine hilfreiche Formatbeschreibung davon gefunden. Bei 2) dachte ich z.B. an eine .htaccess-Datei bei der dann ein dummy-Passwort eingegeben wird, solange im Fenster eben der Hinweis auf die Lizenz steht.
    Fuer Tips und Links bin ich dankbar.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 saeckereier, 12.11.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Das einfachste wäre wohl ein PHP-Skript, dass dann über einen Request-Parameter (accepted) oder ein Cookie (nicht so schön) prüft, ob auf Zustimmen geklickt wurde. Dann gibt's zwei Möglichkeiten, entweder du lieferst die Datei per PHP-Skript aus oder du generierst einen Link, der nur eine bestimmte Zeit gültig ist und lässt den Webservder die Datei ausliefern. Beispiel hier: http://redmine.lighttpd.net/wiki/1/Docs:ModSecDownload
     
  4. #3 saeckereier, 12.11.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Die 2. Lösung finde ich persönlich übrigens sehr elegant.
     
  5. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Weisst Du auch, wie ich den Inhalt des Pop-up Fensters beeinflussen kann?
     
  6. #5 saeckereier, 12.11.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Mach kein Popup sondern eine extra-Seite, die in einem neuen Fenster aufgerufen wird. Sprich du hast einen Link "Download" -> per JS wird ein neues Fenster aufgemacht, in dem dann eine Seite mit deiner Lizenz angezeigt wird und unten ist dann ein submit-Button, der ein PHP-Skript aufruft, dass dich entweder auf den Link umleitet oder direkt die Datei ausliefert.
     
  7. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Klingt nach einer guten Loesung. Nach welchem Stichwort sollte ich schauen, um zu lernen, wie man mit php "eine Datei ausliefert"?
     
  8. #7 saeckereier, 12.11.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
  9. #8 HeadCrash, 12.11.2010
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
  10. #9 saeckereier, 12.11.2010
    Zuletzt bearbeitet: 12.11.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Mal eben gebastelt, ohne es probiert zu haben:

    Aufruf wäre dann skript.php?file=filename

    Code:
    <?php
    $dir="/home/alin/docs/trc/";
    if (isset($_REQUEST["file"]  && isset($_REQUEST["accepted"])) {
        $file=$dir.basename($_REQUEST["file"]);
        header("Content-type: application/force-download");
        header("Content-Transfer-Encoding: Binary");
        header("Content-length: ".filesize($file));
        header("Content-disposition: attachment; filename=\"".basename($file)."\"");
        readfile("$file");
    } else { ?>
    
    
    Hier kommt dann deine Lizenz hin
    
    <form action="/pfad/zu/dieser/php/datei" method="POST">
    <input type="submit" name="accepted" value="Akzeptieren" />
    <input type="hidden" name="file" value="<? echo $_REQUEST["file"]; ?>" />
    </form>
    <?
        }
    
    ?>


    EDIT: 1 Bug korrigiert

    EDIT2: Fiese Sicherheitslücke entfernt, peinlich..
     
  11. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Danke!
     
  12. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    das Script aber bitte nicht 1:1 übernehmen sondern als Arbeitsgrundlage sehen...
     
  13. #12 saeckereier, 12.11.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    marce: Warum nicht? Ich hab zugegebenermaßen nicht lange drüber nachgedacht, aber was für ein Problem siehst du?
     
  14. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    bin kein php-Experte, aber ein http://$URL/script.php?file=../../../../../etc/passwd&accepted=yes z.B. sieht durchaus vielversprechend aus...
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 rikola, 12.11.2010
    Zuletzt bearbeitet: 12.11.2010
    rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Kann apache denn ueber so ein Argument aus seiner chroot-Umgebung ausbrechen, in der es normalerweise laeuft? Oder laeuft apache nicht unter chroot?
     
  17. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    ein Apache läuft per default nicht in einer chroot-Umgebung. Er läuft (default) mit einem anderen User - und darf alles, was der User darf. z.B. div. Dateien lesen. Es muss ja auch nicht mal die /etc/passwd sein - aber z.B. einer /var/www/phpMyAdmin/config.inc.php oder eine andere Configdatei mit "interessanten Infos" für CMS oder anderes darf er ja lesen (muss er ja auch).

    Alles weitere (irgednweoche mod_fcg, suhosin, ... können das zwar einschränken aber per sich nicht 100% verhindern - und daher gilt: externe Daten (und da gehören Get- und Post-Parameter dazu) sind per se nicht vertrauenswürdig und müssen daher entsprechend bearbeitet werden.
     
Thema:

File download nur nach Lizenzzustimmung

Die Seite wird geladen...

File download nur nach Lizenzzustimmung - Ähnliche Themen

  1. flash files downloaden

    flash files downloaden: hi, kann man flash filme aus dem wep downloaden und dann lokal auf dem rechner ablaufen lassen? wie geht das ?
  2. apache fuehrt php nicht aus... das file wir zum download angeboten

    apache fuehrt php nicht aus... das file wir zum download angeboten: Hi. Hat jemand einen Schimmer warum PHP nicht ausgefuehrt wird? Hier meine Config (commonapache2.conf): Alias /virex/...
  3. [Tip] Traffic sparen beim "distfiles-Download"

    [Tip] Traffic sparen beim "distfiles-Download": Mit Hilfe des Programmes deltup kann man bis zu 75% Traffic beim Update von Paketen sparen. How-To-Install Änderungen in der...
  4. Apache Log-Meldung File does not exist

    Apache Log-Meldung File does not exist: Hallo zusammen, in der Logdatei von Apache wird folgende Meldung ausgegeben: … [Thu Jan 07 14:36:03 2016] [error] [client 111.222.333.444] File...
  5. Pydio stellt Enterprise-File-Sharing-Plattform vor

    Pydio stellt Enterprise-File-Sharing-Plattform vor: Das französische Tech Startup Pydio hat eine spezifische Unternehmensversion seiner gleichnamigen freien File-Sharing- und Sync-Plattform...