Cómo ocultar el número de versión de PHP en el encabezado HTTP


La configuración de PHP, de forma predeterminada, permite que el encabezado de respuesta HTTP del servidor "X-Powered-By" muestre la versión de PHP instalada en un servidor.

Por razones de seguridad del servidor (aunque no es una amenaza importante de la que preocuparse), se recomienda que deshabilite u oculte esta información a los atacantes que podrían estar apuntando a su servidor al querer saber si está ejecutando PHP o no.

Suponiendo que una versión particular de PHP instalada en su servidor tenga agujeros de seguridad y, por otro lado, los atacantes se den cuenta de esto, será mucho más fácil para ellos explotar las vulnerabilidades y obtener acceso al servidor a través de scripts.

En mi artículo anterior, he mostrado cómo Ocultar el número de versión de Apache, donde ha visto cómo desactivar la versión instalada de Apache. Pero si está ejecutando PHP en su servidor web apache, también debe ocultar la versión instalada de PHP, y esto es lo que mostraremos en este artículo.

Por lo tanto, en esta publicación, explicaremos cómo ocultar o desactivar la visualización del número de versión de PHP en el encabezado de respuesta HTTP del servidor.

Esta configuración se puede configurar en el archivo de configuración PHP cargado. En caso de que no conozca la ubicación de este archivo de configuración en su servidor, ejecute el siguiente comando para encontrarlo:

$ php -i | grep "Loaded Configuration File"
---------------- On CentOS/RHEL/Fedora ---------------- 
Loaded Configuration File => /etc/php.ini

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
Loaded Configuration File => /etc/php/7.0/cli/php.ini

Antes de realizar cualquier cambio en el archivo de configuración de PHP, le sugiero que primero haga una copia de seguridad de su archivo de configuración de PHP así:

---------------- On CentOS/RHEL/Fedora ---------------- 
$ sudo cp /etc/php.ini /etc/php.ini.orig

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
$ sudo cp /etc/php/7.0/cli/php.ini  /etc/php/7.0/cli/php.ini.orig  

Luego abra el archivo usando su editor favorito con privilegios de superusuario como este:

---------------- On CentOS/RHEL/Fedora ---------------- 
$ sudo vi /etc/php.ini

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
$ sudo vi /etc/php/7.0/cli/php.ini

Busque la palabra clave expose_php y establezca su valor en Off:

expose_php = off

Guarda el archivo y cierra. Luego, reinicie el servidor web de la siguiente manera:

---------------- On SystemD ---------------- 
$ sudo systemctl restart httpd
$ sudo systemctl restart apache2 

---------------- On SysVInit ---------------- 
$ sudo service httpd restart
$ sudo service apache2 restart

Por último, pero no menos importante, verifique si el encabezado de respuesta HTTP del servidor todavía muestra su número de versión de PHP usando el comando a continuación.

$ lynx -head -mime_header http://localhost 
OR
$ lynx -head -mime_header http://server-address

donde las banderas:

  1. -head : envía una solicitud HEAD para los encabezados mime.
  2. -mime_header : imprime el encabezado MIME de un documento obtenido junto con su fuente.

Nota: asegúrese de tener lynx - navegador web de línea de comandos instalado en su sistema.

¡Eso es! En este artículo, explicamos cómo ocultar el número de versión de PHP en el encabezado de respuesta HTTP del servidor para proteger un servidor web de posibles ataques. Puede agregar una opinión a esta publicación o quizás hacer cualquier pregunta relacionada a través del formulario de comentarios a continuación.