"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.


    (Das Script ist nicht von mir!)


    Mit freundlichen Grüßen
    XantypiaxD

  • 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!

  • 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

    Einmal editiert, zuletzt von XantypiaxD (15. Januar 2012 um 20:30)

  • Ü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!

  • Ü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.

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

    Funktionieren tut es auf jeden Fall :P

  • 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!

  • Ä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...