Jörg Reinholz: Moment!

Beitrag lesen

Moin!

Wenn man das umgehen möchte, muss man einfach drauflos kopieren und im Nachhinein auf Fehler prüfen.

Wo wir - ganz genau genommen - auch wieder beim TOCTTOU-Problem ankommen :-(

$fileExt = pathinfo($sourceDirAndFileName, PATHINFO_EXTENSION);

Das ist tatsächlich besser.

Vielleicht muss auch noch eine Prüfung der Endung auf erlaubte oder verbotene Werte stattfinden. Dateien mit php als Endung will man beispielsweise nicht entgegennehmen und aufrufbar irgendwo ins Web legen.

Fürwahr! Allerdings hatte Jnnbo das Problem ausgeklammert. Ich halte es ohnehin für merkwürdig, dass er die Datei in den selben Ordner kopieren will - da wäre also der Hase schon im Pfeffer. Die von Dir genannte Prüfung auf den Mime-Typ sollte deshalb aus meiner Sicht schon stattfinden bevor die Datei (wenn es ein User-Upload ist) aus dem tmp-Ordner geholt wird.

Zudem bin ich ein ausgesprochener Fan davon, Bilder durch imagick zu jagen. Imagick::getImageGeometry sollte reichen um gut und böse zu unterscheiden.

Jörg Reinholz