Creo que en una carga de archivos PHP es una buena práctica almacenar archivos fuera de la raíz del documento con un nombre de archivo generado aleatoriamente y decirle al servidor que los haga no ejecutables, por lo que el archivo no se ejecutará por un intento para acceder al archivo a través de HTTP.
Si almacenarlos fuera de la raíz y evitar que se ejecuten en absoluto no es posible en un entorno en particular, ¿ayudaría a alterar la extensión de los archivos a uno que ciertamente no se tratará como un script o algo similar?
Después de la carga, la extensión real podría guardarse en una base de datos y el archivo se guardará en el sistema de archivos como sd7dsf9gd7s8sd9876asd.secureExtension
en lugar de dangerousScript.php
.
¿Sería esto suficiente protección? ¿Qué extensión sería la mejor, entonces?