Hi,
Ich denke, deine Suche im Code wird nicht sonderlich von Erfolg gekrönt sein, denn das Nadelöhr ist die Funktion zum Bewegen der Datei. PHP bietet nur zwei Funktionen an, die das überhaupt erledigen, einerseits move_uploaded_file(), andererseits rename(). Kennst du noch andere?
Er hat in https://forum.selfhtml.org/?t=206726&m=1403981 noch die "normalen" I/O-Operationen (fopen, fwrite, ...) erwähnt, welche man nutzen kann. Damit bekommt man mindestens ein copy auf dem Fußweg hin.
Was den Sicherheitsaspekt angeht, kann rename() nicht mithalten. Denn selbst wenn der Quellpfad der zu verschiebenden Datei tatsächlich auf sichere Weise aus $_FILES ermittelt wurde, so muss rename() ja dennoch für den allgemeinen Fall geschrieben sein. Es kann also nicht geprüft werden, ob die zu verschiebende Datei hochgeladen wurde. Ebenso kann nicht geprüft werden, ob mehrfach versucht wird, die Datei zu verschieben.
Was move_uploaded_file bietet und alle anderen Lösungen (weder rename noch Toms Fußweg) nicht bieten: das upload-Verzeichnis muß im Safe-Mode nicht in open_basedir enthalten sein. Mit rename/fopen kann ich aber nur auf Dateien zugreifen, auf die das gilt. move_uploaded_file erlaubt es aber explizit.
Damit kann man also ein weiteres Verzeichnis aus open_basedir entlassen.
Bis die Tage,
Matti