Das Mindeste ist also, den Namen zu ändern.
Das halte ich für Blödsinn.
Genau das ist die Sicherheitslücke! Über den Namen kann man nämlich auch das Zielverzeichnis bestimmen! Im Übrigen muss man beim Upload sowieso sicherstellen daß ein Dateiname bestimmten Konventionen genügt. Das ist also ein Aufwasch.
Viel sinnvoller halte ich die Ausgabe der Datei durch ein passendes Script, welches dann eben "von Hand" tun muss, was ansonsten der Webserver "von Haus aus" tun könnte
Einem Hacker ist das völlig egal. Er platziert ein agent.php unterhalb der Docroot und kann dann in aller Ruhe sein Unwesen teiben.
Und was den Namen betrifft: Bei einer DB gestützten Anwendung kriegt die Datei als Name einfach die ID vom auto_increment, fertig.
Tipp: Benutze die FileAPI zum Upload, die liefert neben type auch mtime und size zur jeweiligen Datei.
MfG