Aqua: Seiten einbinden OHNE include() wg sicherheit!

Hallo!

Angenommen ich habe die Datei  foo.php  und möchte die datei
bar.php  einbinden,   und  bar.php  liegt aber auf einem anderen
webserver, so könnte ich ja so machen:

<?php include("http://www.die-domain/bar.php"); ?>

ABER angenommen  bar.php  beinhaltet nicht nur HTML ausgabe
wie man es gerne haette,  sondern beinhaltet auch
PHP code a la <?php   .... ?>
dann würde der ausgeführt werden von foo.php ...

Welcher Befehl ist also fürs einbinden von HTML-Seiten
über HTTP da?

In Perl ist es LWP::Simple,  was ist es in PHP?

Danke!
Aqua

  1. Hi,

    Angenommen ich habe die Datei  foo.php  und möchte die datei
    bar.php  einbinden,   und  bar.php  liegt aber auf einem anderen
    webserver, so könnte ich ja so machen:
    <?php include("http://www.die-domain/bar.php"); ?>
    ABER angenommen  bar.php  beinhaltet nicht nur HTML ausgabe
    wie man es gerne haette,  sondern beinhaltet auch
    PHP code a la <?php   .... ?>
    dann würde der ausgeführt werden von foo.php ...

    Das hängt davon ab, ob der andere Webserver php-fähig ist oder nicht.
    Ist er PHP-fähig, so wird das PHP bereits dort ausgeführt und in foo.php nur das geparste Ergebnis inkludiert.

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hallo Andreas!

      Gehen wir davon aus,
      dass der andere Webserver _nicht_ PHP fähig ist,
      und wir <?php  BÖSER CODE ?>  in plain bekommen...

      Ich brauch also ne Methode die Sicher ist,
      und keinen Schaden zulässt...

      Danke
      Aqua

      1. Hi,

        Gehen wir davon aus,
        dass der andere Webserver _nicht_ PHP fähig ist,
        und wir <?php  BÖSER CODE ?>  in plain bekommen...
        Ich brauch also ne Methode die Sicher ist,
        und keinen Schaden zulässt...

        readfile

        Aber auch im HTML bzw. im darin eingebetteten Javascript kann noch einiges stecken, was Dir Probleme bereitet.

        Wirklich sicher bist Du nur, wenn Du keinerlei fremden Code verwendest.

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.Mud-Guard.de/
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Hello,

          Gehen wir davon aus,
          dass der andere Webserver _nicht_ PHP fähig ist,
          und wir <?php  BÖSER CODE ?>  in plain bekommen...
          Ich brauch also ne Methode die Sicher ist,
          und keinen Schaden zulässt...

          readfile

          Aber auch im HTML bzw. im darin eingebetteten Javascript kann noch einiges stecken, was Dir Probleme bereitet.

          Wirklich sicher bist Du nur, wenn Du keinerlei fremden Code verwendest.

          Unsinn. Mit HTML oder JavaScript kannst Du aber nicht den Server korumpieren, also z.B. Code einschleusen, mit dem man dann ein Spamrelay öffnen kann oder der Dateien verändert...

          Oder kann Dein Server neuerdings auch JavaScript? Wäre ja denkbar. Dann nehme ich den "Unsinn" auch zurück ;-)

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          [ Computer-Camp für PHP-Anwender in den Sommerferien. Programmieren,
            Sport, Fun, Fete. Teilnehmermindestalter Gruppe 1: 14 Jahre
            Mindestalter Gruppe 2+3 18 Jahre, Info bei mir ]
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          1. Hi,

            Aber auch im HTML bzw. im darin eingebetteten Javascript kann noch einiges stecken, was Dir Probleme bereitet.
            Wirklich sicher bist Du nur, wenn Du keinerlei fremden Code verwendest.
            Unsinn. Mit HTML oder JavaScript kannst Du aber nicht den Server korumpieren, also z.B. Code einschleusen, mit dem man dann ein Spamrelay öffnen kann oder der Dateien verändert...

            Ich habe nicht gesagt, daß am Server Schaden auftritt, sondern daß es Probleme geben kann.
            Diese Probleme können z.B. die Darstellung der eigenen Inhalte betreffen.
            Beispiel: der eingebettete Code enthält
            <div style="position:absolute; top:0; left:0; width:100%; height:100%; background-color:white; z-index:99999">blabla</div>
            Von den eigenen Inhalten ist nichts mehr zu sehen...
            Oder es wird per Javascript mal eben das innerHTML des body-Elements überschrieben.

            cu,
            Andreas

            --
            MudGuard? Siehe http://www.Mud-Guard.de/
            Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    2. Hallo MudGuard,

      Angenommen ich habe die Datei  foo.php  und möchte die datei
      bar.php  einbinden,   und  bar.php  liegt aber auf einem anderen
      webserver, so könnte ich ja so machen:
      <?php include("http://www.die-domain/bar.php"); ?>
      ABER angenommen  bar.php  beinhaltet nicht nur HTML ausgabe
      wie man es gerne haette,  sondern beinhaltet auch
      PHP code a la <?php   .... ?>
      dann würde der ausgeführt werden von foo.php ...

      Das hängt davon ab, ob der andere Webserver php-fähig ist oder nicht.
      Ist er PHP-fähig, so wird das PHP bereits dort ausgeführt und in foo.php nur das geparste Ergebnis inkludiert.

      Kann man mit PHP nicht auch PHP-Code ausgeben?

      z.B. echo '<?php boesefunktion('delete','/'); ?>'

      Zumindest bei mir lokal geht das.

      Gruß Alex

      --
      >> Dass in eine if Schleife zu packen schafft mein 10 jähriges Patenkind. [...]
      > Mhhh, wenn man if in Schleifen packt, muss man sich auch nicht wundern, wenn die Patenkinder verwöhnte Luder werden. [...]
      [TomIRL und Tom in ?t=64084&m=364291]
      ss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}
      1. Hi,

        Das hängt davon ab, ob der andere Webserver php-fähig ist oder nicht.
        Ist er PHP-fähig, so wird das PHP bereits dort ausgeführt und in foo.php nur das geparste Ergebnis inkludiert.

        Kann man mit PHP nicht auch PHP-Code ausgeben?

        Ja, und? Der ausgegebene PHP-Code ist dann das geparste Ergebnis.

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.Mud-Guard.de/
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Hallo MudGuard,

          [PHP-Dateien von fremden Server per include() einbinden]

          Das hängt davon ab, ob der andere Webserver php-fähig ist oder nicht.
          Ist er PHP-fähig, so wird das PHP bereits dort ausgeführt und in foo.php nur das geparste Ergebnis inkludiert.

          Kann man mit PHP nicht auch PHP-Code ausgeben?

          Ja, und? Der ausgegebene PHP-Code ist dann das geparste Ergebnis.

          Und der sollte dann imho dank include() auf dem Rechner ausgeführt werden, der die externe Datei eingebunden hat. Oder übersehe ich irgendetwas?

          Ich hatte meine erste Frage vor allem deswegen gestellt, weil Deine Antwort jemand unbedarfte in einer trügerischen Sicherheit wiegt, wenn er sich nicht die selbe Frage stellt. Der OP möchte - wie das Subject suggeriert - wegen des Sicherheitsrisikos des Ausführens fremden PHP-Codes auf include() verzichten. Und Deine minimalistische Antwort könnte imho unbedachte Mitleser dazu verleiten, include() trotzdem zu verwenden, weil der evtl. böse PHP-Code ja schon auf dem fremden Rechner geparst und ausgeführt wird.

          Gruß Alex

          --
          >> Dass in eine if Schleife zu packen schafft mein 10 jähriges Patenkind. [...]
          > Mhhh, wenn man if in Schleifen packt, muss man sich auch nicht wundern, wenn die Patenkinder verwöhnte Luder werden. [...]
          [TomIRL und Tom in ?t=64084&m=364291]
          ss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}
          1. Hello Alex,

            Ich hatte meine erste Frage vor allem deswegen gestellt, weil Deine Antwort jemand unbedarfte in einer trügerischen Sicherheit wiegt, wenn er sich nicht die selbe Frage stellt. Der OP möchte - wie das Subject suggeriert - wegen des Sicherheitsrisikos des Ausführens fremden PHP-Codes auf include() verzichten. Und Deine minimalistische Antwort könnte imho unbedachte Mitleser dazu verleiten, include() trotzdem zu verwenden, weil der evtl. böse PHP-Code ja schon auf dem fremden Rechner geparst und ausgeführt wird.

            genau deshalb verbreite ich immer die Statements, dass

            include()
            require()
            exec()
            system()
            eval()
            ...

            nicht in die Hände von "Kindern" gehören ;-)

            fallen Dir noch mehr Funktionen ein, die weggesperrt gehörten?

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            [ Computer-Camp für PHP-Anwender in den Sommerferien. Programmieren,
              Sport, Fun, Fete. Teilnehmermindestalter Gruppe 1: 14 Jahre
              Mindestalter Gruppe 2+3 18 Jahre, Info bei mir ]
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            1. Halihallo Tom

              genau deshalb verbreite ich immer die Statements, dass

              [...]

              nicht in die Hände von "Kindern" gehören ;-)
              fallen Dir noch mehr Funktionen ein, die weggesperrt gehörten?

              Für Kinder? - 'poppen', äh, 'popen'...

              Viele Grüsse

              Philipp

              --
              M$: Patches - don't.