Sven Rautenberg: Ist die Datei ??? vorhanden?

Beitrag lesen

Moin!

Fopen funktioniert nur, soweit die Datei auf dem Server liegt.

[ ] Du kennst die Gefahren von fopen() und include(), die durch die fopen URL wrappers entstehen.

Informier dich mal, welche Sicherheitsprobleme man kriegt, wenn man ungeprüft Userangaben in ein Include einfügt. include() und fopen() sind sehr wohl in der Lage, bei entsprechender Konfiguration auch Dateien per HTTP und per FTP anzusprechen (bei FTP kann man sie sogar speichern, wenn der Server das erlaubt).

Nun hab ich aber Alex so verstanden, dass die Datei auf einem anderen Server liegt. Und da braucht man dann dieses Viech vom Sven.

Besser wäre es. fsockopen() ist ja nun wirklich recht schlicht und einfach zu bedienen - man benötigt lediglich noch ein paar Kenntnisse darüber, was man dem anderen Server per HTTP mitteilen will.

Wie man von einem fremden Server eine Datei abholt, ist in http://www.php.net/manual/en/function.fsockopen.php im ersten Beispiel erklärt. Anstatt "GET /" muß man nur "HEAD /pfad/zur/url.ext" schreiben und erhält eine Kurzantwort des Servers, ohne daß der URL-Inhalt selbst übertragen wird. Das kann man dann auswerten (im Beispiel wird es einfach per echo ausgegeben).

- Sven Rautenberg