Pregunta

P.ej. ¿Es más seguro de usar? mod_php en lugar de php-cgi?¿O es más seguro de usar? mod_perl en lugar de tradicional cgi-scripts?

Lo que más me interesan son las cuestiones de seguridad, pero la velocidad puede ser un problema si existen diferencias significativas.

¿Fue útil?

Solución

¿Seguridad en qué sentido?De cualquier manera, realmente depende del script que se esté ejecutando y de qué tan bien esté escrito.Demasiados scripts hoy en día son mediocres y no validan correctamente las entradas.

Personalmente prefiero FastCGI a mod_php ya que si un proceso FastCGI muere, se generará uno nuevo, mientras que he visto mod_php matar todo Apache.

En cuanto a la seguridad, con FastCGI técnicamente podría ejecutar el proceso php con un usuario diferente al usuario predeterminado del servidor web.

Por otra parte, si está utilizando el nuevo soporte de subprocesos de trabajo de Apache, deberá asegurarse de no utilizar mod_php, ya que algunas de las extensiones no son seguras para subprocesos y provocarán condiciones de carrera.

Otros consejos

Si ejecuta su propio servidor, utilice el módulo, es algo más rápido.Si estás en un servidor compartido, la decisión ya se ha tomado por ti, generalmente en el lado CGI.La razón de esto son los permisos del sistema de archivos.PHP como módulo se ejecuta con los permisos del servidor http (generalmente 'apache') y, a menos que pueda modificar sus scripts para ese usuario, debe modificarlos a 777, legible en todo el mundo.Esto significa, por desgracia, que su servidor vecino puede echarles un vistazo; piense en dónde almacena la contraseña de acceso a la base de datos.La mayoría de los servidores compartidos han resuelto esto usando cosas como phpsuexec y similares, que ejecutan scripts con los permisos del propietario del script, por lo que puedes (debes) modificar tu código a 644.Phpsuexec se ejecuta sólo con PHP como CGI - eso es más o menos todo, es sólo una cosa de la máquina local - no hace ninguna diferencia para el mundo en general.

La mayoría de los agujeros de seguridad ocurren debido a una pésima programación en el propio script, por lo que es realmente discutible si se ejecutan como cgi o en módulos.Dicho esto, los módulos de Apache pueden potencialmente bloquear todo el servidor web (especialmente si se usa un MPM con subprocesos) y mod_php es famoso por ello.

cgi será más lento, pero hoy en día existen soluciones para eso, principalmente FastCGI y amigos.

¿Cuál es su modelo de amenaza?

Del documento PHP install.txt para PHP 5.2.6:

Los módulos del servidor proporcionan un rendimiento significativamente mejor y una funcionalidad adicional en comparación con el binario CGI.

Para IIS/PWS:

Advertencia

Al usar la configuración de CGI, su servidor está abierto a varios ataques posibles.Lea nuestra sección de seguridad CGI para aprender cómo defenderse de esos ataques.

Un módulo como mod_php o FastCGI es increíblemente más rápido que un CGI simple.simplemente no hagas CGI.Como han dicho otros, el programa PHP en sí es la mayor amenaza a la seguridad, pero ignorando que hay otra consideración, en los hosts compartidos.

Si su script está en un host compartido con otros programas php y el host no se ejecuta en modo seguro, entonces es probable que todos los procesos del servidor se estén ejecutando como el mismo usuario.Esto podría significar que cualquier otro script php puede leer el suyo, incluidas las contraseñas de la base de datos.Así que asegúrese de investigar la configuración del servidor para asegurarse de que su código no sea legible para otros.

Incluso si usted controla su propio alojamiento, tenga en cuenta que otra aplicación web pirateada en el servidor podría ser un conducto hacia otras.

Usar un módulo integrado definitivamente será más rápido que usar CGI.Las implicaciones de seguridad dependen de la configuración.En la configuración predeterminada son prácticamente iguales, pero cgi permite algunas configuraciones más seguras que los módulos integrados no pueden proporcionar, especialmente en el contexto de alojamiento compartido.¿Contra qué quieres protegerte exactamente?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top