Cómo ocultar la versión de WordPress y corregir el «Fingerprinting» (Huella Digital)

Si te preocupa la seguridad de tu sitio web, hay un concepto clave que a menudo pasamos por alto: la discreción. Al igual que no irías por la calle gritando qué modelo de alarma tienes en casa, tu servidor no debería ir gritando qué versiones de software utiliza.

En auditorías de seguridad, esto se conoce como Fingerprinting o Huella Digital:

Fingerprinting (Huella Digital)
Descripción: El servidor revela información sobre las tecnologías que usa (ej: «WordPress 6.4», versiones de PHP o Apache). Esto facilita la tarea a un atacante para buscar vulnerabilidades específicas de esas versiones.

Hoy vamos a solucionar esto en 3 pasos, cubriendo todas las capas de tu web.

#Paso 1: Ocultar la versión de WordPress (functions.php)

Por defecto, WordPress es muy «orgulloso» y pone su versión en todas partes: en el código fuente, en los feeds RSS y, lo más importante, añade un parámetro ?ver=6.x.x a todos tus archivos de estilos y scripts.

Para limpiar esto, añade el siguiente código al final del archivo functions.php de tu tema:

text
/**
 * Seguridad: Evitar Fingerprinting (Huella Digital)
 * Oculta la versión de WordPress del código fuente, feeds RSS, scripts y estilos.
 */
function github_remove_version_info() {
    // 1. Eliminar meta tag generator del header
    remove_action('wp_head', 'wp_generator');
    // 2. Eliminar versión de los feeds RSS
    add_filter('the_generator', '__return_empty_string');
}
add_action('init', 'github_remove_version_info');

/**
 * Eliminar parámetro de versión (?ver=x.x) de scripts y estilos
 * Dificulta saber qué versión de WP o plugins se está usando
 */
function github_remove_ver_css_js( $src ) {
    if ( strpos( $src, 'ver=' ) )
        $src = remove_query_arg( 'ver', $src );
    return $src;
}
add_filter( 'style_loader_src', 'github_remove_ver_css_js', 9999 );
add_filter( 'script_loader_src', 'github_remove_ver_css_js', 9999 );

#Paso 2: Silenciar al Servidor Apache (.htaccess)

Cuando tu servidor muestra una página de error (como un 404 que no gestiona WordPress), a menudo firma la página con algo como: «Apache/2.4.41 (Ubuntu) Server at…».

Para evitar esto, añade esta línea a tu archivo .htaccess:

text
# SEGURIDAD: Ocultar información del servidor
ServerSignature Off

#Paso 3: Ocultar la versión de PHP (php.ini)

Esta es la parte que muchos olvidan. Cada vez que tu web carga, el servidor envía una cabecera oculta llamada X-Powered-By que dice exactamente qué versión de PHP estás usando (ej: PHP/8.3).

Para desactivarlo, necesitas editar el archivo php.ini de tu servidor (en cPanel suele estar en Software > MultiPHP INI Editor o en el administrador de archivos) y buscar o añadir esta directiva:

text
; Ocultar la cabecera X-Powered-By
expose_php = Off

Después de aplicar estos cambios, tu web seguirá funcionando exactamente igual, pero será «muda» ante los escáneres automáticos que buscan versiones antiguas o vulnerables de software. Es una capa extra de seguridad por oscuridad que, sumada a buenas prácticas, fortalece tu sitio considerablemente.