Url bei jedem Aufruf ändern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Url bei jedem Aufruf ändern

    Hallo, ich bräuchte mal ein paar Vorschläge oder Links zum folgenden Problem.

    Es geht um eine Homepage, auf der man sich Daten downloaden kann. Bedingung hierbei ist, das erstens der jenige registriert ist und zweitens in einer Datenbank mit seinem Namen ein Flag zur Berechtigung gesetzt ist. Der Loggin-Teil und auch die Überprüfung dieses funktionieren (per Session-id) . Nun habe ich das Problem wenn ein x-beliebiger User einfach die Url angibt, ein Registrierung, Loggin usw. sinnlos ist. Gibt es denn eine einfache Variante, dass die Url bei eingeloggten Usern (vielleicht ber Session-id's) jedesmal verändert wird? Und wie speichert man die Datei dann automatisch in den Ordner, bzw. an die in der Url angegebenen Adresse?

    Wäre nett, wenn jemand ne Idee hat.

  • #2
    Drei Lösungsvorschläge:


    1. Lösung
    das Zielverzeichnis wo die Downloads liegen ist mit einer .htaccess und .htpasswd geschützt - nach dem Login wird der User dort eingetragen und ein Cookie bei ihm vor der Weiterleitung gesetzt. Der User kriegt keine erneute Abfrage, aber er kann den Link nicht weitergeben, da das Verzeichnis Passwortgeschützt ist und nur betreten werden kann wenn du den User nach dem Login dort in die Dateien einträgst und das cookie setzt.

    2. Lösung
    Erstelle den Zielcontent in einem Verzeichnis was keiner kennt (geht auch ausserhalb des html Verzeichnisbaums). Erstelle ein beschreibbares Verzeichnis wo du Symlinks erzeugst. Nach dem Login kannst du eine URL mit symlink bilden - hier kannst du gerne seine ip , sessionid o.ä. in den Pfad mit einbeziehen. Diese Symlinks kannst du im Skript nach einer sagen wir Inaktivität des Users von z.b. 5 Minuten wieder löschen. D.h. der Link wäre nur zeitlich begrenzt nutzbar. Während der Symlink aktiv ist, surft der User in diesem "geheimen" Verzeichnis , ohne den richtigen Pfad zu sehen und kann auch solange Downloaden, solange er online ist

    3. Lösung
    Bei einem download kriegt der User nicht den echten Link sondern nur z.b. ein ?downloadid=10 und du schaust in der Datenbank , wo Datei mit id 10 liegt und ob er die Berechtigung zum Download hat (war Login erfolgreich?) - dann kannst Du ihm das File per PHP an den Browser direkt schicken - er wird nie einen Pfad zu Gesicht bekommen ...


    Meine favorisierte Lösung wäre noch das mit den Symlinks (nr2) , falls dies auf deinem Server geht ...
    Zuletzt geändert von WiZARD; 07.08.2006, 17:14.

    Kommentar


    • #3
      so richtig habe ich den op zwar nicht verstanden, aber vielleicht sucht er ja session_regenerate_id()

      Kommentar


      • #4
        Dankeschön, werde es ausprobieren. Ähm und noch ne Frage, bisher hat der Login und das Abrufen der Downloadberechtigung hervorragend geklappt. Haben davon eine Kopie gemacht und zum Test eine andere Variante auf den Server geladen. Nun habe ich das ganze wieder zurück kopiert und auf einmal läd er die Seite download-php nich mehr, es wird kein Fehler oder sonst was angezeigt, nur eine weiße seite. Der Logn funzt aber noch... woran kann das liegen?

        Kommentar


        • #5
          also langsam verzweifle ich daran, habe die folgenden Sachen ausprobiert:
          http://www.bme.ie/index.php?m=PHP-APP
          DL&language=de&display=bmebdy und http://www.coder-wiki.de/HowTos/PHP-Dateidownload

          wenn ich jetzt die Downloadseite aufrufe, erscheint egal was für eine Datei ich zum Test nehme ein Wirrwar aus Zeichen und Symbolen, sprich die Datei im Klartext. Wieso wird sie nicht geöffnet?

          Kommentar

          Lädt...
          X