htaccess: protege la ejecución de archivos php en un directorio específico

1

¿Cómo puedo proteger la ejecución de php en un directorio de carga específico?
Principalmente, la gente pone .htaccess en la carpeta de carga para proteger la ejecución de PHP. Pero alguien dice que puede ser reemplazado por atacantes.
Entonces, ¿cómo puedo controlarlo desde la raíz .htaccess?
Intenté poner los siguientes códigos en la raíz .htaccess pero muestra "500 errores internos internos" y mi sitio web se cae.

<Directory ^public_html/product/uploads>
<Files ^(*.php|*.phps)>
    order deny,allow
    deny from all
</Files>
</Directory>

Gracias de antemano

    
pregunta ronaldtgi 29.01.2015 - 10:18
fuente

3 respuestas

0

¿Has intentado usar " 's?

<Directory "^public_html/product/uploads">
<Files "^(*.php|*.phps)">
    order deny,allow
    deny from all
</Files>
</Directory>

Esto negaría a los usuarios acceder a archivos PHP. Alternativamente, puede deshabilitar el motor PHP para este directorio, permitir que se lean los archivos. Consulte la pregunta relacionada Deshabilitar PHP en el directorio (incluidos todos subdirectorios) con .htaccess

    
respondido por el Dog eat cat world 29.01.2015 - 11:06
fuente
0

La respuesta de @ Dog-eat-cat-world es un buen comienzo, pero debes evitar usar .htaccess todos juntos.

Es un gran asesino de rendimiento y cuando se usa algo que no sea Apache Httpd, ni siquiera se puede usar (como nginx).

Es mejor (y más limpio) poner este tipo de restricciones dentro de su archivo de configuración del host (virtual). También como por ejemplo, Drupal recomienda aquí do:

  • desactivar cualquier opción que no sea necesaria
  • Anula el controlador php a algo que no existe.
  • Posiblemente deshabilite el motor php completamente.
  

Directamente desde ./sites/default/files/.htacces dentro de una configuración de Drupal 7 en funcionamiento.

     

# Desactive todas las opciones que no necesitamos.

     

Opciones Ninguna

     

Opciones + FollowSymLinks

     

# Configura el controlador catch-all para evitar que se ejecuten los scripts.

     

SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006

     

     

# Reemplace el controlador nuevamente si nos ejecutamos más adelante en la lista de evaluación.

     

SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003

     

     

# Si sabemos cómo hacerlo de manera segura, deshabilite el motor de PHP por completo.

     

     

php_flag engine off.

     
    
respondido por el LvB 29.01.2015 - 12:12
fuente
0

Todas las otras respuestas son buenas. Estoy de acuerdo con Lawri, debe colocar la limitación en su sección de VirtualHost de su configuración de Apache y no usar los archivos .htaccess ya que causan problemas de rendimiento, hace que la depuración sea difícil y puede usarse para omitir las dos soluciones propuestas. Por lo tanto, también deberá agregar AllowOverride None a su configuración de Apache. De lo contrario, un atacante podría cargar un htaccess webshell autocontenido .

    
respondido por el wireghoul 10.02.2015 - 22:50
fuente

Lea otras preguntas en las etiquetas