Hay dos posibles significados para "ejecutable" en este contexto, y ambos son cosas con las que debe configurar.
Un archivo binario ejecutable que puede ejecutar desde la línea de comandos escribiendo el nombre del archivo en una cáscara
Un archivo que puede ser leído y procesada como guión de un servidor web.
Manipulación binario ejecutable
Para configurar contra la caja 1 en un sistema * x ONU, es necesario asegurarse de que el directorio de carga, y los archivos en el mismo, son propiedad del usuario del servidor web y solo legible por ese usuario. El directorio debe ser ejecutable; esto significa que se puede acceder a los archivos dentro de ese directorio). Si el usuario web necesita listar los archivos en el directorio, también debe ser legible. Por supuesto, también debe poder escribirse para permitir la creación de nuevos archivos.
Así, el conjunto octal desea habría
chown <web-server-user> <upload-dir>
chmod 0700 <upload-dir>
Los archivos no deben ser ejecutables y sólo debería ser de lectura y escritura por el servidor web, por lo que estos deben ser
chmod 0600 <uploaded-file>
Tenga en cuenta esto significa que solo el usuario del servidor web podrá ver estos archivos. Esta es la mejor situación para la seguridad. Sin embargo, si usted realmente no necesita otros usuarios locales para poder ver estos archivos, a continuación, utilizar
chmod 0755 <upload-dir>
chmod 0644 <uploaded-file>
Manejo servidor web excutable
Codificación contra la caja 2 es el servidor web específico.
Una opción es colocar el directorio de carga fuera de la raíz web, disolviendo el acceso URL directo a los archivos cargados por completo y solo para servirlos a través del código del lado del servidor.Su código lee y repite el contenido del archivo, lo que garantiza que el servidor web nunca lo procesa como script.
La otra opción es configurar su servidor web para que no permita el procesamiento de scripts de los archivos en el directorio de carga. Esta configuración es específica del servidor web. Sin embargo, por ejemplo, en Apache se puede lograr esto esta por entrar en la configuración del servidor:
<Directory "path-to-upload-dir">
AllowOverride None
Options -ExecCGI
</Directory>
AllowOverride None es importante, ya que evita que cualquier subida de un archivo .htaccess en el directorio de archivos y volver a la configuración de la web permisos de servidor para ese directorio.
No es mi área de conocimiento, pero tuve el php_admin_flag resaltado como algo más para agregar a esto. Agregue "php_admin_flag engine off" debajo de la línea de Opciones. \t AllowOverride None \t Opciones -ExecCGI \t motor fuera php_admin_flag –
Jake