phpbar.de logo

Mailinglisten-Archive

[php] FTP-Problem

[php] FTP-Problem

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Thu, 01 Jul 1999 09:02:45 +0200


Norbert Pfeiffer wrote:
> A: geht nicht
> 1. Betrifft Sonderzeichen in Passwoertern  :-(
>    Ist jedoch total unverstaendlich, da viele Unixer gerade darauf,
>    dass Passwoerter mindestens ein Sonderzeichen enthalten, sehr
>    grossen Wert legen.

Selbstverständlich enthält der PHP fopen-URL-Wrapper einen 
Escape-Mechanismus. Man kann entweder selbst darauf kommen,
indem man sich klar macht, daß es sich um einen URL-Wrapper
handelt (wie bindet man noch einmal beliebige Sonderzeichen
in eine URL ein?) oder man liest den Source.

Im Quelltext zu PHP 3.0.11 findet man die Datei fopen-wrappers.c,
und dort kann man in Zeile 634 und folgende die Behandlung von
fopen("ftp://" finden. In Zeile 711 findet man die vitale Information,
einen Call zur PHP-internen Funktion _php3_rawurldecode(resource->pass,
strlen(ressource->pass));

Damit ist unmittelbar klar, daß

  $fp = fopen("ftp://user:_at__(at)_host.domain.de/file.txt", "w");

eine Datei zum Schreiben auf dem Host host.domain.de mit dem
Usernamen "user" und dem Paßwort "_(at)_" öffnet.

> 2. Ueberschreiben vorhandener Dateien, also nicht zum updaten
>    geeignet. Die Rechte spielen dabei keine Rolle, da die Dateien
>    wie bei einem normalen FTP-Transfer angelegt werden.

Überschreiben von Dateien mit PHP geht nicht! Dazu auch die Zeilen
757 und folgende. PHP prüft den Statuscode des FTP-Servers beim Öffnen
der Verbindung und weigert sich schlicht, Dateien zu überschreiben.
Wenn dies dennoch gelingt, dann deswegen, weil der FTP-Server falsche
oder unzureichende Statuscodes sendet.

> Nee, Script und Datei liegen auf meinem Host. Sie sollte nur per
> FTP auf verschiedenen anderen Servern gespiegelt werden. Immer
> dann, wenn sich aktuelle Aenderungen ergeben haben.
> Nun werde ich es weiter von Hand machen muessen  :-(((

Warum? Und warum FTP mit Klartextpaßworten verwenden? 
scp, rsync?

Kristian

-- 
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.shonline.de/ (GPL)


php::bar PHP Wiki   -   Listenarchive