Mejorando la instalación

Ahora vamos a mejorar nuestra instalación quitando toda la información que no hay que dejar al descubierto y optimizar el rendimiento quitando aquellas cosas que no necesitamos.

Versión de WordPress y links del <head>

Lo primero que vamos a hacer es ocultar la versión de nuestro WordPress, debemos de tener instalada la ultima versión aun así nadie tiene por que saber que versión usamos. Lo primero sera buscar

<?php bloginfo('version'); ?>

en el “header.php” de nuestro tema y la borraremos, además también es recomendable añadir estas líneas en el “functions.php” del tema para cambiar el número de versión por otra cosa:

function inloop_remove_version() {
return 'Game Boy Color 1998';
}
add_filter('the_generator', 'inloop_remove_version');

Donde pone ‘game boy color 1998’ pon lo que quieras o dejarlo vacio

O lo podemos eliminar con:

remove_action( 'wp_head', 'wp_generator' );

Para optimizar un poco mas tambien quitaremos estos enlaces que se incluyen en el <head> añadiendo las siguientes lineas al “functions.php”

remove_action( 'wp_head', 'wlwmanifest_link' ); 
remove_action( 'wp_head', 'rsd_link' );

y los link alternativos al RSS feed

remove_action( 'wp_head', 'feed_links', 2 ); 
remove_action( 'wp_head', 'feed_links_extra', 3 );

Otro sitio donde aparece la versión es en el archivo “readme.html” que esta en la raiz de la instalación, lo borraremos o lo editaremos, este archivo se volvera a crear cuando actualicemos WordPress, no olvideis borrarlo despues de las actualizaciones.

Pagina de Login

En la pagina de “login” de nuestra instalación nos informa si el usuario o la contraseña es incorrecta debemos quitar o cambiar estos textos, para ello usaremos la siguiente función que añadiremos al archivo “function.php” de nuestro tema.

function inloop_login_error_message($error){
    return  "Incorrect username or password"; 
}
add_filter('login_errors','inloop_login_error_message');

Solo lo necesario

Los plugins como los temas tambien presentan vulnerabilidades, al editar nuestro “wp-config.php” hemos cambiado la ruta del directorio de “wp-content” por lo que dificultaremos el listado de los plugins y los temas. Solo deberiamos tener los archivos de los plugins y el tema que usemos, todo lo demas lo borraremos incluido plugin “Hello Dolly”.

Si intentamos visitar, por ejemplo “http://www.misitio.com/wp-settings.php” nos aparecera un error que generan los scripts PHP mostrando la ruta completa de la instalación. Hay muchos mas archivos que muestran el mismo error.
No solo no lo necesitamos sino que no lo queremos mostrar, para evitar esta vulnerabilidad es suficiente con editar el archivo “php.ini” y añadir la línea

display_errors = Off

Cada archivo con sus permisos

Nuestro servidor web posiblemente sea una máquina Linux, y en este sistema es muy importante tener cuidado con los permisos asignados tanto a los directorios como archivos. Para que funcione correctamente WordPress y no haya fallos de seguridad, lo ideal es que todos los directorios tengan el permiso 755 y los archivos el 644.

Apunte para comentarios

Si queremos quitarnos los enlaces de los comentarios podemos usar este filter en nuestro “function.php” que quitara las etiquetas html de los comentarios.

add_filter( 'pre_comment_content', 'wp_specialchars' );

Usa la cabeza:

Nunca uses temas o plugins premium o incluso los gratuitos descargados desde redes P2P o de las paginas no oficiales por ahorrarte unos euros, la inmensa mayoria incluye codigo inyectado que te dara problemas.

¿Donde puedo saber las vulnerabilidades de WordPress?

En WordPress.org, en el enlace “Return to Last Query” podemos ver todas las vulnerabilidades.