Hi!
Das Problem ist, dass hier eine Diskussion untgerdrückt werden soll. Warum eigentlich?
Darum geht es nicht. Es ist nur mit der derzeitigen Faktenlage kein Konsens in dem Thema erzielbar. Die offizielle Aussage weicht von der von dir propagierten ab. Es ist nicht zu sehen, dass die offizielle Vorgehensweise schädlich ist. Deswegen ist es unverständlich, warum du immer deine Aussage als Fakt formuliert triffst, dessen Wahrheitsgehalt nicht erwiesen ist. Deine Aussage stützt sich derzeit nur auf Vermutungen ab.
Durch die Absicherung des Arrays $_FILES, das offiziell erst _nach_ den Funktionen *_uploaded_file() eingeführt worden ist, ist der Dateiname für hochgeladene Files im Element $_FILES[<name>]['tmp_name'] sicher.
Das ist derzeit lediglich deine Annahme. Beweisen kann man Sicherheit sowieso nicht. Und wenn in der offiziellen Linie kein bekannter Sicherheitsmangel oder ein gravierender Nachteil zu sehen ist, sollte die offizielle Linie die bevorzugte sein. (Ob die Eigenschaft des bedingungslose Überschreibens der eventuell vorhandenen Zeildatei ein Nachteil ist, ist eine Einzelfallentscheidung und kein generell ankreidbares Fehlverhalten.)
Welchen Sicherheitsaspekt das bringen sollte, dass man das Temp-File nur einmal kopieren darf, kann ich mir auch nicht vorstellen.
Verschieben. Zumindest ist es dann aus dem oftmals allgemein zugänglichen Bereich raus. Es mit move_uploaded_file() nur einmal verschieben zu können, ist jedenfalls auch kein genereller Nachteil. Zudem sehe ich grad nicht, dass Anwendungsfälle, in denen man die Datei mehrfach braucht, bei einer überwiegenden Mehrheit vorkommen sollen. Wer sie mehrfach braucht, kann immer noch anschließend kopieren.
Lo!