Guía de seguridad en WordPress

WordPress es uno de los gestores de contenido más utilizados para crear sitios web o blogs de forma gratuita, rápida y fácil. El hecho de ser tan popular es claramente uno de los principales objetivos para los hackers.

Hay muchos tipos de hackeos y en la inmensa mayoría no sabremos si nos han hackeado. Por ejemplo podríamos estar dentro de un botnet sin darnos cuenta.

Mas vale prevenir que curar. La elección del hosting va a ser una de las claves principales para prevenir ataques. Un hosting que no esté bien preparado y configurado significa que el hackeo es previsible. Será imprescindible entonces elegir un servicio de hosting que ofrezca seguridad. Es preferible gastar un dinero en alojamiento seguro que perder todo el trabajo realizado durante meses por vulnerabilidades del servidor. Lo digo por experiencia.

Antes de contratar un servicio de hosting se debe prestar atención a las prestaciones pero también saber si tiene instalado módulos de seguridad como suPHP o mod_ruid2.

Para quienes no lo sepan, suPHP es un módulo de Apache y a su vez una utilidad independiente que permite que los scripts PHP se ejecuten con el usuario propietario del script. Así mismo, permite establecer restricciones de seguridad como evitar permisos 777 en directorios, etc. No es recomendable disponer de un servicio de hosting en el que necesitáis cambiar permisos para poder, por ejemplo, instalar un WordPress de forma correcta.

Los permisos de los directorios deberían ser 750 o 755. Y para los archivos 644 o 640. En cambio, el archivo de configuración wp-config.php podría tener permisos 600.

A la hora de instalar un WordPress debemos:

  • Fijar un nombre de base de datos complejo
  • Fijar un usuario de base de datos complejo
  • Fijar una contraseña de base de datos compleja
  • Nunca dejar el prefijo wp_
  • Crear un usuario de WordPress complejo
  • Fijar una contraseña de usuario compleja

En cuanto a la estructura de la instalación podemos mover wp-config.php al directorio superior. En este caso tan solo debemos mover el fichero de configuración al directorio superior. WordPress observará que no existe en la raiz de la instalación y lo irá a buscar al directorio superior. Esta medida de seguridad solo es posible aplicarla cuando se tiene una única instalación de WordPress. No es posible utilizarla en una instalación de varios WordPress uno dentro de otro.

Rellenar los Security Keys (claves secretas) es una buena medida de seguridad que hace casi imposible detectar la contraseña de acceso a tu WordPress.

Las claves secretas las puedes obtener en: https://api.wordpress.org/secret-key/1.1/

Estas claves las debes copiar y pegar en tu archivo wp-config.php.

Existe la posibilidad de mover el directorio plugin. En este caso podemos cambiar el nombre del directorio y además añadir en el archivo wp-config.php el cambio de nombre del directorio. Como por ejemplo:

define('WP_PLUGIN_DIR', dirname(__FILE__) . '/wp-content/modulos');

También es posible mover el directorio themes y el directorio uploads de la misma forma.

Otra medida de seguridad bastante utilizada en servidores no administrados es utilizar los archivos .htaccess para evitar ejecutar según qué tipo de archivos en según qué tipo de directorios.

Por ejemplo, si queremos solo permitir algunos archivos en wp-content, podemos bloquear el acceso a todos los archivos excepto a unos cuantos empleando reglas en nuestro archivo .htaccess.

Si dispones de IP estática es posible aceptar solo a determinadas IPs el acceso a wp-admin mediante reglas en el archivo .htaccess.

Proteger el archivo wp-config.php es otra medida que no debes pasar por alto. En el archivo .htaccess principal también se puede proteger.

Denegar el acceso a todos los ficheros .htaccess también es importante. Esto también se puede hacer con .htaccess.

Es importante también proteger o esconder los archivos que muestran la versión de WordPress que se está utilizando. En este caso el archivo readme.html y license.txt.

Mucha gente elimina estos archivos y se queda tan pancho pero cuando se actualiza el WordPress estos archivos vuelven a estar ahí. Para evitar tener que estar eliminando en cada actualización estos archivos es posible proteger estos archivos en nuestro archivo .htaccess.

Además de esto, también se puede esconder la versión de WordPress que aparece en la cabecera de la página. Para ello deberemos editar el archivo functions.php de la plantilla activa añadiendo el siguiente filtro por ejemplo:

function ja_delete_version() {
    return '';
}
add_filter('the_generator', 'ja_delete_version');

Es importante protegerse del hotlinking. Hoy en día hay muchos blogs que copian información de otros blogs, incluyendo las urls de las imágenes depositadas en tu servidor) provocando un aumento de la transferencia. Podemos prevenirnos mediante reglas en el archivo .htaccess de esta situación mostrando otra imagen para reducir la transferencia y dar un susto al copiador.

Muchos servidores ya lo evitan por defecto pero otros no. Es importante no dar pista a los posibles hackers mostrando errores en pantalla donde en la mayoría de los casos se muestra la ruta entera del archivo que está fallando. En el archivo wp-config.php podemos añadir el siguiente código:

error_reporting(0);
@ini_set('display_errors', 0);

WordPress dispone de un editor de código en el que puedes editar el código de tu plantilla para realizar cambios. Editar archivos desde el panel de WordPress es una locura. Personalmente recomiendo editarlos vía ftp. Desactivar esta opción es una medida más de seguridad que va a evitar que cualquiera que entre pueda editar los archivos de la plantilla.

En WordPress es posible no permitir editar los archivos desde la administración añadiendo la siguiente definición en el archivo wp-config.php:

define('DISALLOW_FILE_EDIT', true);

Si tenemos el certificado de seguridad contratado es importante forzar el SSL para el admin añadiendo las siguientes definiciones al archivo wp-config.php:

define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

Hasta ahora hemos hablado de un montón de cosas pero no hemos hablado de plugins que nos aporten seguridad. Conozco y he utilizado muy pocos:

  • Duplicator: Un plugin muy completo y gratuito para hacer backups es
  • Wordfence Security
  • Antivirus

No fiarse de temas o plugins que no estén en sitios de confianza. Quizás pueda darse el caso que has encontrado un tema que te encanta y encima es gratuito. Es muy probable que lleve algo de regalo y no te puedes fiar.

Muchos piensan que montar un blog es instalar un WordPress y olvidarse. Es imprescindible estar siempre a la última tanto en la instalación de WordPress como de los plugins y temas. Además de traer mejoras, las actualización suelen hacerse por seguridad.

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(6 votos, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

Una respuesta a “Guía de seguridad en WordPress”

  1. […] Mi experiencia con WordPress y mi blog ha sido, en resumen, muy buena. No puedo darle un excelente debido a que al principio tenía muchos problemas de seguridad. Debes tener en cuenta que mi blog está en línea hace más de 10 años. Bien es cierto que desde hace varios años la seguridad de este gestor de contenidos parece que ha mejorado considerablemente. De todas formas es importante aplicar técnicas de seguridad para no ser atacado fácilmente por hackers. Ver guía de seguridad en WordPress. […]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre