Conceptos de seguridad PHP | Documentación de cPanel y WHM

Conceptos de seguridad PHP


Última modificación: 21 de junio de 2021

Visión general

Las aplicaciones web escritas en PHP pueden contener vulnerabilidades de seguridad que los usuarios malintencionados pueden aprovechar para obtener información confidencial sobre su sistema o sus usuarios. Estas vulnerabilidades pueden incluir:

  • Archivos ejecutables no verificados.
  • Funciones de entorno de servidor de desarrollo que se ejecutan en un entorno de servidor de producción.
  • Mensajes de error que incluyen información confidencial del sistema.

Este documento enumera varios métodos que puede utilizar para reforzar la configuración PHP de su sistema.

Restringir los ataques de inclusión de archivos

Los ataques de inclusión de archivos a menudo ocurren cuando un atacante aprovecha una vulnerabilidad de inclusión de archivos en una aplicación web que incluye archivos y scripts de forma dinámica. Un usuario puede crear aplicaciones que no se validan correctamente. include y require declaraciones, o use nombres de archivo como parámetros. Un atacante puede pasar un archivo malicioso a la aplicación que contiene el mismo nombre que un archivo que ya existe en el servidor. El atacante puede utilizar este archivo para extraer información confidencial sobre su sistema.

Ataques de inclusión de archivos locales

Los ataques LFI ocurren cuando un atacante extrae archivos locales en scripts PHP para ver información confidencial en o sobre su sistema. Por ejemplo, un atacante puede utilizar una vulnerabilidad de inclusión de archivos locales en un script PHP para ver la /etc/passwd expediente. Esto permitiría a un atacante descubrir información básica sobre las cuentas de su servidor web.

Para limitar el impacto de las vulnerabilidades de inclusión de archivos locales en scripts PHP, cambie esta directiva en el Modo editor sección de WHM Editor INI de MultiPHP interfaz (WHM >> Inicio >> Centro de seguridad >> MultiPHP INI Editor). Esta directiva limita el acceso de un atacante a un único directorio a través de inclusiones locales y dificulta los ataques de inclusión de archivos locales.

Importante:

  • En cPanel & WHM versión 74 y anteriores, habilite el open_basedir característica en WHM’s Ajuste PHP open_basedir interfaz (WHM >> Inicio >> Centro de seguridad >> PHP open_basedir Tweak).

  • En cPanel & WHM versión 76, los servidores que ejecutan EasyApache 3 pueden modificar esta configuración en WHM Ajuste PHP open_basedir interfaz (WHM >> Inicio >> Centro de seguridad >> PHP open_basedir Tweak). De lo contrario, use WHM Editor INI de MultiPHP interfaz (Inicio >> WHM >> Software >> MultiPHP INI Editor).

Ataques de inclusión de archivos remotos

Los ataques de RFI ocurren cuando un atacante extrae archivos de una ubicación remota en su servidor. Por ejemplo, un atacante puede escribir un script PHP y alojarlo en un servidor, y luego usar un método de inclusión remota para aprovechar las vulnerabilidades de inclusión en su servidor. Una configuración PHP insegura permite a los atacantes ejecutar los datos maliciosos de sus servidores, incluso sin permisos de lectura o escritura en su servidor.

Para evitar ataques de inclusión de archivos remotos en cPanel & WHM versión 76 y anteriores, configure el allow_url_fopen y allow_url_include directivas para Apagado en el Modo avanzado sección de WHM Editor de configuración PHP interfaz (WHM >> Inicio >> Configuración del servicio >> Editor de configuración PHP).

Nota:

En sistemas que ejecutan EasyApache 4, configure estas directivas en el Modo básico sección de WHM Editor INI de MultiPHP interfaz (WHM >> Inicio >> Software >> MultiPHP INI Editor).

Funciones de desactivación

Algunas funciones de PHP son no seguro para un entorno de producción. Si sus desarrolladores de PHP no requieren estas funciones, nosotros fuertemente le recomendamos que los desactive para que un atacante no pueda utilizarlos. Generalmente, cuando deshabilita estas funciones, puede detener a un atacante que logra cargar un script PHP malicioso en su sistema.

  • Para deshabilitar una lista de funciones en cPanel & WHM versión 76 y anteriores, introdúzcalas en una lista delimitada por comas en la disable_functions cuadro de texto de la directiva en el Modo avanzado sección de WHM Editor de configuración PHP interfaz (WHM >> Inicio >> Configuración del servicio >> Editor de configuración PHP).

  • Para ver un ejemplo de funciones para deshabilitar, lea Publicación de nixCraft sobre disable_functions.

En sistemas que ejecutan EasyApache 4, ingrese estas funciones en el Modo editor sección de WHM Editor INI de MultiPHP interfaz (WHM >> Inicio >> Software >> MultiPHP INI Editor).

Importante:

  • Muchas funciones en PHP realizan las mismas tareas. Pida a sus desarrolladores que estandaricen una o dos de estas funciones para una tarea para que pueda deshabilitar el resto.

  • Usted puede solamente deshabilitar las funciones internas de PHP.

Evitar la divulgación de información

Los mensajes de error que revelan información importante del sistema pueden ayudar a los atacantes a planificar una estrategia de ataque. Esta información incluye la estructura de su directorio, los nombres de la base de datos y los nombres de usuario. Si PHP no imprime errores en la interfaz de usuario de la aplicación web, puede inhibir la capacidad de los atacantes para obtener información que podrían usar para comprometer su sistema.

Para limitar la visualización de mensajes de error en cPanel & WHM versión 76 y anteriores, configure el display_errors directiva para Apagado en el Modo avanzado sección de WHM Editor de configuración PHP interfaz (WHM >> Inicio >> Configuración del servicio >> Editor de configuración PHP).

Nota:

  • En sistemas que ejecutan EasyApache 4, establezca esta directiva en Apagado en el Modo básico sección de WHM Editor INI de MultiPHP interfaz (WHM >> Inicio >> Software >> MultiPHP INI Editor).

  • Cuando deshabilita el display_errors directiva, sus desarrolladores aún pueden recuperar información útil de los códigos de depuración en los registros de PHP apropiados.

Restringir la carga de archivos

Los atacantes a menudo cargan programas maliciosos en sistemas vulnerables para comprometerlos. Si restringe todas las cargas de archivos, esto puede garantizar que los atacantes no poder explote su configuración PHP para inyectar sus propios scripts PHP.

Para restringir la carga de archivos en cPanel & WHM versión 76 y anteriores, configure el file_uploads directiva en el Modo avanzado sección de WHM Editor de configuración PHP interfaz (WHM >> Inicio >> Configuración del servicio >> Editor de configuración PHP).

Nota:

  • En sistemas que ejecutan EasyApache 4, establezca esta directiva en el Modo básico sección de WHM Editor de configuración PHP interfaz (WHM >> Inicio >> Configuración del servicio >> Editor de configuración PHP).

  • Algunos desarrolladores prefieren incluir la capacidad de cargar archivos a su servidor a través de PHP. Si tu debe permitir la carga de archivos, establezca el upload_tmp_dir directiva para Sobre para cambiar el directorio temporal predeterminado para la carga de archivos.

  • Muchos administradores también configuran upload_max_filesize directiva para limitar el tamaño máximo de archivo que los usuarios pueden cargar. Este parámetro no mejora la seguridad de su configuración PHP. Los administradores establecen este parámetro para ayudar a administrar la carga del servidor desde los scripts PHP.

Proteger sesiones

Algunos atacantes intentan secuestrar sesiones. Esto ocurre cuando un atacante roba la sesión de la aplicación web de un usuario y realiza acciones como ese usuario. PHP utiliza identificadores de sesión largos generados aleatoriamente para sus URL. Si bien esto hace que las URL de sesión sean extremadamente difíciles de adivinar, el sistema de archivos almacena este valor. Los atacantes pueden inyectar JavaScript en las páginas para robar cookies que contienen estos ID de sesión, lo que les permitiría secuestrar sesiones.

Para proteger estos ID de sesión de los secuestradores de sesión, puede configurar el session.cookie_httponly directiva en el Modo avanzado sección de WHM Editor de configuración PHP interfaz (WHM >> Inicio >> Configuración del servicio >> Editor de configuración PHP).

Nota:

  • En sistemas que ejecutan EasyApache 4, establezca esta directiva en el Modo editor sección de WHM Editor INI de MultiPHP interfaz (WHM >> Inicio >> Software >> MultiPHP INI Editor).

  • Esta directiva asegura que JavaScript no poder acceder a las cookies de sesión de una aplicación PHP. Si sus desarrolladores requieren que JavaScript posea acceso a las cookies de sesión, haga no habilite esta opción.

  • También es posible que desee permitir que PHP verifique los valores de referencia HTTP. Esto garantiza que la información confidencial de la sesión pase internamente durante la sesión de un usuario, de modo que los usuarios no puedan publicar accidentalmente información confidencial de la sesión cuando comparten URL.

Deshabilitar registros globales

Importante:

Esta opción ya no existe para PHP versión 5.4 y posteriores.

Las variables globales permiten que un script PHP reciba y procese variables sin una fuente especificada. Esto permite a los atacantes sobrescribir las variables de configuración para obtener acceso a áreas de su sistema que el sistema normalmente restringe.

Para eliminar esta vulnerabilidad, configure el register_globals directiva para Apagado en el Modo avanzado sección de WHM Editor de configuración PHP interfaz (WHM >> Inicio >> Configuración del servicio >> Editor de configuración PHP).

Nota:

En sistemas que ejecutan EasyApache 4, establezca esta directiva en Apagado en el Modo básico sección de WHM Editor INI de MultiPHP interfaz (WHM >> Inicio >> Software >> MultiPHP INI Editor).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *