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 qué preocuparse), se recomienda que deshabilite u oculte esta información de los atacantes que podrían estar atacando su servidor si desea 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 sepan esto, será mucho más fácil para ellos explotar las vulnerabilidades y obtener acceso al servidor mediante 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 necesita 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 el 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 de 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"

Ubicación del archivo de configuración de PHP

---------------- 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 de la siguiente manera:

---------------- 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 con su editor favorito con privilegios de superusuario, como:

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

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

Localice la palabra clave expose_php y configure su valor en Desactivado :

expose_php = off

Guarda el archivo y cierra. Después, 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 sigue mostrando su número de versión de PHP con el comando a continuación.

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

donde las banderas:

  1. -head – sends a HEAD request for the mime headers.
  2. -mime_header – prints the MIME header of a fetched document together with its source.

¡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.