¿Puede PHP bloquearse y exponer el código fuente?

3

Estoy ejecutando NGINX y PHP CGI rápido. Tengo un sitio web de PHP simple que tiene algunas credenciales codificadas dentro del código fuente.

¿Nginx servirá el código fuente real del sitio web en lugar de la versión interpretada si el proceso php-fpm falla?

¿Es posible este escenario?

    
pregunta r00tkit 03.11.2016 - 21:57
fuente

3 respuestas

2

Posible, si. Aunque es mucho más probable, como han señalado otros, es una mala configuración, lo que provoca que las solicitudes no se envíen al intérprete y revela el código fuente.

Una mitigación común a esto es mover archivos confidenciales, como un archivo de configuración que contiene credenciales de base de datos, fuera de la raíz del documento. Los marcos MVC fomentan esto mediante el uso de un controlador frontal. Es decir, el único código fuente expuesto a la raíz del documento es un pequeño archivo index.php . El resto del código fuente se lee desde fuera de la raíz del documento. Esto minimiza el impacto de la mala configuración del intérprete.

    
respondido por el h4ckNinja 04.12.2016 - 02:38
fuente
1

Un problema bastante común es la impresión de trazas de pila, ya sea a través de un controlador de errores personalizado o display_errors = on en php.ini, y revelando la base de datos credenciales cuando falla la conexión .

También hay errores de configuración de Nginx / PHP que darán como resultado el servicio de sus archivos como texto sin formato en lugar de pasarlos a través del intérprete, pero es más probable que se detecten al probar su configuración.

    
respondido por el Xiong Chiamiov 03.11.2016 - 23:07
fuente
0

Si PHP FPM no está configurado para ejecutar archivos .php (o no está configurado correctamente), en algunos casos nginx -t no se queja, pero obtiene una descarga de código fuente de php de sobrevuelo si abre la página. Si realiza modificaciones a esta sección en particular en su bloque server , siempre asegúrese de que la página se muestre como debería.

Si PHP falla, siempre obtendrás un error HTTP 502 Bad Gateway en Nginx y todo esto no debería suceder.

    
respondido por el Rápli András 03.01.2017 - 03:22
fuente

Lea otras preguntas en las etiquetas