Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Download durch Passwort schützen





Frage

Ich hab ein Programm geschrieben, dass ich auf meiner Homepage zum Download anbieten möchte. Zum download berechtigt ist man aber nur, wenn man einen gültigen Key hat. Wie verhindere ich nun, dass man die Datei (das Programm) einfach durch eingeben der richtigen Url downloadet? Hintergrund: Mit jedem Update des Programms, ändere ich auch den Key. Wenn ein Kunde nun schon eine frühere Version heruntergeladen hat, ist ihm ja der Downloadlink (z.B. www.meinedomain.de/programm.zip) bekannt. Wie hindere ich nun die Besucher daran, durch einfaches eintippen des Downloadlinks, das Programm herunter zu laden?

Antwort 1 von Nessus

Hi,

nutze hier im SN mal die Suchfunktion mit dem Begriff ".htaccess".
Ist recht einfach zu realisieren. Ich würde aber an deiner Stelle nicht jedesmal das gleiche Verzeichnis nutzen, sondern für jede Version einen neuen Ordner anlegen und den individuell schützen. Dadurch kann der registrierte Kunde immerhin noch seine lizensierte Version downloaden.

HTH

Nessus

Antwort 2 von missjane

Hallo,

danke für die Antwort. Allerdings ist .htaccess nicht ganz das was ich suche. Dort muss man dann ja auch User+Pass eingeben.

Ich hab es mir zwaar auch schon überlegt, .htaccess zu verwenden, wenn es aber noch einen anderen Weg gibt, möchte ich lieber auf .htaccess verzichten.


Antwort 3 von Nessus

Hi,

anderst sehe ich da keine Chance.
Natürlich gis da auch die Möglichkeit die Datei zu zippen und mit einem Passwort zu versehen. Dann kann er es zwar runterladen, kann aber nichts damit anfangen.
Aber wenn Du das Programm schon selbst geschrieben hast, warum machsst Du dann keine Registrierungsfunktion/Freischaltung rein?

Nessus

Antwort 4 von semi

<?php
$files = array (
  "a#Q9i?W_%gT0" => "prg_v1.zip",
  "q5%@7O0p-a1~" => "prg_v2.zip"
);
if(isset($files[$pid])) {
  $file = $files[$pid];
  header("Content-Type: application/zip;");
  header("Content-disposition:attachment;filename=$file");
  $fd = fopen("files/$file", "rb");
  rewind($fd);
  fpassthru($fd); 
}
else {
  echo "BlaBla. Nix da.";
}
?>
und das Verzeichnis files mit einer htaccess Datei.

<Limit GET POST>
order deny,allow
deny from all
</Limit>
Statt des Arrays könntest Du eine Key-Liste aus einer Datei laden (diese Datei auch nach ./files kopieren)

Aufruf: http://..../download.php?$pid=....

Gruß,
Michael

Antwort 5 von Timmy

Beachte aber auch, dass der Downloadlink + Key weitergegeben werden könnten an Dritte. ...falls Du Dein Prog kommerziell vermarkten willst.

Antwort 6 von semi

Ups!

download?pid=...

Antwort 7 von Toni G.

du könntest auch auf einen FTP umlenken und dort per Passwort den Zugang regeln:

<A HREF=ftp://user@domain TARGET=....



Antwort 8 von Kaffeebecher

man könnte natürlich auch die Zipdatei mit einem Passwort (Key) versehen...

gruß Tom:-)

Antwort 9 von thomasn1975

Hier mal semis Skript etwas abgeändert, wobei hier aber noch die Benutzerverwaltung fehlt:


<?php
if ( $user==$user_name && $password==$user_password )
   {
        header("Content-Type: application/zip;");
        header("Content-disposition:attachment;filename=$file");
        $fd = fopen("files/$file", "rb");
        rewind($fd);
        fpassthru($fd); 
      }
      else {
        echo "BlaBla. Nix da.";
      }
   } // end if $user and $password given
else
   {
      define(SCRIPT_FILENAME,substr(strrchr($SCRIPT_NAME, "/"), 1));

      print('
<html>
   <body>
      <form action="'.SCRIPT_FILENAME.'" method="POST">
         Benutzername: <input name="user"><br>
         Passwort: <input type="password" name="password">
         <input type="hidden" value="'.$file.'" name="file">
      </form>
   </body>
</html>');
?>



Antwort 10 von missjane

Danke für die Hilfe, an alle!

Klappt bestens.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: