Hello,
Dann will ich hier jetzt auch nochmal einhaken, denn die Frage, was move_uploaded_file() wirklich tut, konnte ich bisher immer noch nicht klären. Woher nimmt die Funktion die Information "uploaded"?.
So wie es dokumentiert ist. Sie sorgt dafür, dass es sich wirklich um eine hochgeladene Datei handelt und nicht etwa um /etc/passwd, falls es jemandem gelingt, diesen Namen an die Stelle des zu kopierenden Dateinamens zu bringen. Ein einfaches copy() prüft das nicht.
*eins-zwei-drei-vier-fünf-sechs-sieben-acht-neun-zehn*
Meine Frage war doch nicht, was dokumentiert ist, sondern, wie die die Funktion das "uploaded" feststellt. Da der Temporärdateiname vom Server-System ausgewürfelt wird und die Einstellung für 'upload_tmp_dir' mit PHP_INI_SYSTEM gekennzeichnet ist, kann ich mir nicht vorstellen, welchen Einfluss der Client auf diese Namen bzw. den Pfad nehmen könnte.
Was macht also move_uploaded_file() zusätzlich, um die Sicherheit noch zu erhöhen?
Wen soll es eigentlich schützen?
Den Werserver.
*mmh*
Leuchtet mir nicht ein.
(Wo steht es im Quellcode? Wenn es jemand verlinken kann, brauch ich nicht erst lange zu suchen, sonst fang ich heute Nacht vielleicht damit an...)
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg