Ergebnis 1 bis 8 von 8

Thema: "Speichern unter" via PHP l funktioniert nicht in Opera

  1. #1
    Interessierte/r Avatar von XantypiaxD
    Registriert seit
    17.01.2010
    Beiträge
    123
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard "Speichern unter" via PHP l funktioniert nicht in Opera

    N'abend zusammen

    Ich habe ein kleines Problem.. Ich benutze ein kleines Script, welches es mir ermöglicht Dateien direkt per "Speichern unter"-Dialog aufzurufen.
    Ich habe es mit allen gängigen Browsern ausprobiert. Es funktionierte in allen außer in Opera! In Opera wird immer die Dateiendung durch ".htm" ersetzt.

    Aus dem Script wird mir aber nicht klar, warum er diese ersetzt. Eventuell könnte mal jemand drüber schauen. Danke!

    Erfolgreich wurde mit Firefox, Internet Explorer und Safari getestet.

    PHP-Code:
    <?php
    //Datei download.php
    $folderName "../audio/musikarchiv/";
    if (!isset (
    $_GET['file']))
        die (
    "Kein Parameter");
    if (
    strpos($_GET['file'], '/') !== false)
        die(
    "Unerlaubte Zeichen");
    if (!
    is_file($folderName.$_GET['file']))
        die(
    "Datei nicht gefunden");
    // Suffix ermitteln, geht sicher auch eleganter :)
    $x explode(".",$_GET['file']); 
    $a = (count($x)-1);
    $suffix $x[$a]; 
    $ctypy "application/".$suffix
    // Header setzten
    header("Content-Type: ".$ctype); 
    header("Content-Disposition: attachment; filename=".$_GET['file']); 
    readfile($folderName.$_GET['file']);
    ?>
    (Das Script ist nicht von mir!)


    Mit freundlichen Grüßen
    XantypiaxD
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: "Speichern unter" via PHP l funktioniert nicht in Opera

    Das Script ist auch kompletter müll; Unsicher, anfällig für XSS und schäden an deinem Server.
    Da wird eine Variable $ctypy definiert und 2 zeilen später eine $ctype verwendet. Im Header steht dann:
    Code:
    Content-Type: 
    Content-Disposition: ...
    Anstadt nem brauchbaren typ. Deshalb mach Opera das.
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  3. #3
    Interessierte/r
    Themenstarter
    Avatar von XantypiaxD
    Registriert seit
    17.01.2010
    Beiträge
    123
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: "Speichern unter" via PHP l funktioniert nicht in Opera

    ah ok danke soweit.. aber ich werde dass wohl nochmal überarbeiten dass es auch sicher ist

    Danke!


    bzw. könntest du mir vielleicht sagen, worauf ich achten muss um es so sicher wie möglich zu machen? Danke
    Geändert von XantypiaxD (15.01.2012 um 21:30 Uhr)

  4. #4
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: "Speichern unter" via PHP l funktioniert nicht in Opera

    Überleg mal was passiert wenn ich
    Code:
    download.php?file=\pfad\zur\apache\config\datei.cnf
    Aufrufe?

    Und was passiert dem, dem ich nen Downloadlink mit einer Virus-Infizierten Datei gebe?

    Tipp: In PHP dient sowohl / als auf \ als Datei-Trennungszeichen.
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  5. #5
    Bandit
    Gast

    Standard AW: "Speichern unter" via PHP l funktioniert nicht in Opera

    Zitat Zitat von Tobse Beitrag anzeigen
    Überleg mal was passiert wenn ich
    Code:
    download.php?file=\pfad\zur\apache\config\datei.cnf
    Aufrufe?
    Was soll da passieren? Da kommt dann "Datei nicht gefunden" denn die Datei

    "../audio/musikarchiv/\pfad\zur\apache\config\datei.cnf"

    wird es nicht geben.

  6. #6
    Interessierte/r
    Themenstarter
    Avatar von XantypiaxD
    Registriert seit
    17.01.2010
    Beiträge
    123
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: "Speichern unter" via PHP l funktioniert nicht in Opera

    Habe es jetzt mal wie folgt abgeändert. Geht dass so?

    PHP-Code:
    <?php
    $folderName 
    '../audio/musikarchiv/';
    if(isset(
    $_REQUEST['file']) && file_exists($folderName.$_REQUEST['file'])) {
        
    $comptypes = array(=> '.mp3'=> '.wav'=> '.ogg'=> '.MP3'=> '.WAV'=> '.OGG');
        
    $isType substr($_REQUEST['file'], -4);
        if(
    in_array($isType$comptypes)) {
            
    $conTyp 'application/'.substr($_REQUEST['file'], -4);
            
    header("Content-Type: ".$conTyp);
            
    header("Content-Disposition: attachment; filename=".$_REQUEST['file']);
            
    readfile($folderName.$_REQUEST['file']);
        } else {
            echo 
    'Illegaler Dateityp!';
        }
    } else {
        echo 
    'Datei existiert nicht!';
    }
    ?>
    Funktionieren tut es auf jeden Fall :P

  7. #7
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: "Speichern unter" via PHP l funktioniert nicht in Opera

    Das ist schonmal sicherer und sollte ausreichen. Alledrings kann man immernoch .wav, .mp3 und .ogg dateien ausherhalb von ./../audio/musikarchiv/ erreichen.
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  8. #8
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: "Speichern unter" via PHP l funktioniert nicht in Opera

    Ähm... wieso gibst du immer den Content-Type "application/..." zurück, wenn du Lieder anbietest?
    Sollte das nicht eher "audio/..." heißen? Kann vielleicht daran liegen, dass Opera verwirrt ist.
    Something big is coming. And there will be pirates and ninjas and unicorns...

Ähnliche Themen

  1. weiß nicht, wie das heißt... "Unter-Framebuttons"
    Von dimmy im Forum HTML & CSS Forum
    Antworten: 0
    Letzter Beitrag: 28.10.2006, 15:40
  2. "Ziel speichern unter..." ausschalten?
    Von John Opheim im Forum HTML & CSS Forum
    Antworten: 9
    Letzter Beitrag: 13.10.2006, 08:48
  3. IFrame "WYSIWYG-Editor" unter Mozilla nicht editie
    Von sauer82 im Forum HTML & CSS Forum
    Antworten: 0
    Letzter Beitrag: 31.03.2006, 11:05
  4. MP3 "speichern unter" verhindern
    Von doofie im Forum HTML & CSS Forum
    Antworten: 9
    Letzter Beitrag: 13.04.2005, 00:36
  5. Kein "speichern unter" bei Bildern
    Von NewOne im Forum HTML & CSS Forum
    Antworten: 17
    Letzter Beitrag: 01.09.2004, 20:54

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •