Externes Skript einbinden


Alice

Erfahrenes Mitglied
#1
Hallo Leute.

Es gibt ein paar Wege externe Skripte einzubinden. Ich habe mich für "require" entschieden. Zusätzlich habe ich eine Abfrage eingebaut, der erst einmal prüft, ob das externe Skript überhaupt verfügbar ist mit "fopen".

Das Problem ist, dass es zu lange dauert, die Seite zu laden, wenn der externe Server offline ist.

Jemand eine Idee wie man ein externes Skript sicher und schnell (inkl. Prüfung) realisieren könnte?
 

ComFreek

Mod | @comfreek
Moderator
#3
Ouh, das klingt gerade, als würdest du arbiträre Dateien von externen Servern in deinem PHP-Kontext ausführen lassen! Das ist eine extrem große Sicherheitslücke!
 

Alice

Erfahrenes Mitglied
#4
Hallo. :)

1. Skript auf Server A
PHP:
<?php
   if (@fopen('http://XXXXXX.ddns.net/das-skript.php','r'))
   {
       @require('http://XXXXXX.ddns.net/das-skript.php');
   }
       else
   {
       echo "Nicht erreichbar!";
   }
?>
2. Skript auf Server B
PHP:
<?php
...
?>
Server A ist eigentlich nur die Domain und der Style der Website (HTML, CSS und JS). Die echte Arbeit wird von Server B gestemmt (Berechnungen, Inkscape etc pp).
 

ComFreek

Mod | @comfreek
Moderator
#5
Wie liefert Server B denn *.php Dateien aus? Führt er sie aus und liefert deren Ausgabe oder liefert er deren rohes Skript?
Das kannst du überprüfen, indem du einfach zu http://example.com/das-skript.php mit deinem Browser navigierst. Was kommt als Quelltext?

Falls er sie ausführt: require unnötig und Sicherheitslücke => file_get_contents stattdessen nutzen.
Falls er sie nicht ausführt: damit ist das Skript von Server B für jeden frei einsehbar, indem er zu der URL navigiert.

Falls Server B offline ist, so möchtest du einen schnellen Abbruch, d.h. du möchtest einen kleinen Timeout. "file_get_contents timeout" auf Google bringt etwa: Does file_get_contents() have a timeout setting?
 

Neue Beiträge