Sicherer Datei-(Videoabruf) ohne!!! Download

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

  • Sicherer Datei-(Videoabruf) ohne!!! Download

    Hallo Leute,

    ich hab ein riesen Problem. Ich möchte mehr oder weniger eine Download-Center-Funktionalität (Mit geschützten Datein, einem Login..etc. ) allerdings für das iPhone/iPod touch.
    Es sollen konkret Video Dateien übertragen und auf dem iPhone abgespielt werden.

    Die übliche Herangehensweise also:
    • Dateien ausserhlab des DocumentRoots,
    • Erzeugung einer Sesseion bei Login,
    • Aufruf der Datei über Parameter in der URL
    • erzeugen des DOWNLOADS mit header()
    scheitert an dem Safari.
    Grund: der Safari des iPhones/iPods unterstützt keine Downloads.

    Wird nun ein Video direkt über eine URL z.B. "http://meinserver/meinvideo.3gp" aufgerufen, so übergibt der Safari nur diese URL an den internen Player.
    Soweit so gut, allerdings sind die Videos so nicht geschützt. Will ich jetzt hier .htaccess zum Schutz einsetzen, scheitert dies.
    Grund: Der Player müsste sich erneut authentifizieren und das kann er nicht!
    (Ich weiß man kann den Login per URL anhängen, das will ich aber aus Sicherheitsgründen nicht!)

    Jetzt meine FRAGE:
    Kann ich das Download-Center so bauen dass es keinen Download erzeugt sondern eine URL die aber nur innerhalb der Session gültig ist?
    Wenn ja, wie?
  • Also ich habe 2 Varianten versucht.

    Quellcode

    1. ...
    2. //header("Content-Type: video/3gp"); habe ich auch versucht
    3. header("Content-Type: application/octet-stream");
    4. ...
    5. header("Content-Disposition: attachment; filename=\"$save_as_name\"");
    6. readfile($filename);
    7. ...


    und deine Version:

    Quellcode

    1. ...
    2. header("Content-Type: video/3gp");
    3. readfile($filename);
    4. ...


    Im normalen Browser funktionieren alle, aber leider auf dem iPhone nicht. :(
    Offensichtlich übergibt readfile() die Datei ebenfalls direkt an den Browser.

    Ist es vielleicht möglich die Datei für den Abruf temporär ins DocumentRoot zu kopieren und danach wieder zu löschen?
  • Und dass es dem iphone vielleicht auf die dateiendung ankommt?
    Also das habe ich auch versucht. Auch verschiedene MIME-Types.
    Der Safari versucht an den internen Player (sowas wie ein Quicktime-Player) eine URL zu übergeben. Dieser Player selber ruft dann erst die Datei ab.
    Aus diesem Grund scheitern offensichtlich alle Versuche eine Datei direkt an den Player zu übergeben.

    Ich muss es also hinbekommen dass ich irgendwie eine temporär gültige URL baue, die dem Player übergeben wird.
    Dann kann dieser die Datei abrufen. Direkt nach Abruf sollte die URL ungültig werden, damit die Datei danach nicht ohne
    erneute Autorisierung (Session) abgerufen werden kann.

    Ich weiß nicht ob man sowas mit mod_rewrite machen kann.