Ocultar la versión de PHP (X-Powered-By)

LinuxPHP

En esta guía veremos cómo ocultar la versión de PHP en nuestro servidor para que no se muestra en las peticiones de información de otros servidores. El objetivo es ocultar esta información relativa a nuestro servidor para tener mayor privacidad y mayor seguridad. Anteriormente ya hemos explicado cómo obtener la versión de PHP de un servidor remoto. De este modo agregaremos una capa de seguridad adicional a nuestro servidor. Ésto no hará que nuestro servidor sea más seguro, ya que lo único que hacemos es ocultar algo, no arreglar un posible error.

Antes de nada, contamos con que tenemos la versión 1.3 o superior de Apache y el módulo mod-php (ya sea PHP4 o PHP5) de Apache.

Si realizamos una petición HEAD a una URL o a un archivo estático, no se mostrará la versión de PHP tal y como podemos ver a continuación.

$ HEAD http://servidor_remoto.com/pagina.html
200 OK
Connection: close
Date: Thu, 17 Sep 2015 20:02:04 GMT
Server: Apache
Content-Type: text/html; charset=UTF-8
Client-Date: Thu, 17 Sep 2015 21:05:03 GMT
Client-Response-Num: 1

Como veis, no hay ni rastro de la versión de PHP que usamos cuando hacemos una petición a la URL estática http://servidor_remoto.com/pagina.html. Sin embargo, cuando hacemos una petición a un archivo que usa PHP, ya podemos ver esta información.

$ HEAD http://servidor_remoto.com/index.php
200 OK
Connection: close
Date: Thu, 17 Sep 2015 21:03:05 GMT
Server: Apache
Content-Type: text/html; charset=UTF-8
Client-Date: Thu, 17 Sep 2015 22:06:04 GMT
Client-Response-Num: 1
X-Powered-By: PHP/5.2.3-2+b1

Como vemos, la versión de PHP se muestra en la línea «X-Powered-By: PHP/5.2.3-2+b1«. Para evitar que se muestre esta línea tenemos que abrir el archivo php.ini, que suele localizarse en la carpeta «/etc«, aunque puede estar en otro lado como la ruta «/etc/php5/apache2/php.ini» dependiendo de vuestra configuración.

[root@server /]# nano /etc/php.ini

Una vez abierto el archivo con nuestro editor de texto preferido (vi, nano…), buscamos la línea donde pone expose_php = On, que es su valor por defecto. Lo que tenemos que hacer es cambiar su valor a Off.

...
expose_php = Off
...

Guardamos el archivo php.ini y reiniciamos el servidor de alguno de los dos modos.

[root@server /]# service apache2 restart

NOTA: Es posible que vuestro servicio de apache se llame httpd dependiendo de vuestro distribución de Linux.

Espero que la guía os haya sido útil.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”