Hoy en día, WordPress representa el 28% de Internet.
Esta popularidad tiene muchos puntos positivos como tener a tu disposición una comunidad enorme de desarrolladores y diseñadores a los que recurrir en caso de necesitar ayuda. Por otro lado, hace que sea muy tentador para usuarios maliciosos crear herramientas (robots) que buscan por Internet buscando WordPress vulnerables.
La seguridad en general es compleja, WordPress es seguro, pero la seguridad 100% no existe. A continuación os comparto algunos consejos para reducir los riesgos de sufrir un hackeo en vuestro WordPress.
<h2>Protección básica que todo WordPress debe tener</h2>Realiza copias de seguridad completa de tu sitio WordPress periódicamente. Debe incluir: la base de datos, la carpeta wp-content
y sus subcarpetas y los archivos de la carpeta raíz personalizados (.htaccess
, wp-config.php
, robots.txt).
Instalar un certificado SSL (Secure Socket Layer). Desde 2017 Google penaliza las páginas sin SSL y Let’s Encrypt puede ayudarte con ello, ya que es una tecnología apoyada por las grandes empresas de Internet, libre y gratuito en la mayoría de los proveedores de alojamiento Web.
Utiliza contraseñas segura (robustas). O dobla tu seguridad usando la doble autentificación.
Mantener tu WordPress actualizado a la última versión. Esto incluye el core, los temas, los plugins incluso las traducciones.
Desinstalar los temas y plugins que no utilizamos. Y limita el uso de plugins, es decir, utiliza solo los que vayas a necesitar.
Evita usar el usuario admin.
Limita los intento de accesso fallidos.
Las Authentication Unique Keys and Salts son unas líneas que puedes encontrar en el archivo wp-config.php
y que puedes generar en la siguiente URL: https://api.wordpress.org/secret-key/1.1/
define('AUTH_KEY', 'V{rFQ.b`xBVT@hN=h>K,/}];Fs3S9.p)d _f4Wr?NxQ|y4=4^VPj8u${w9.~o8(J');
define('SECURE_AUTH_KEY', '-w/RPn]MLK^kg:ey)x1yOCFD+u< Wk/Ixv;f.yIj1_l6 QXaT]qz?p nL)d|5!(=');
define('LOGGED_IN_KEY', 'VguZnn4iZFh3}xr#KoD-^JH?lsQkW-n^HW1K?Gab#d3dzsX`Cp?KrjlAU:J>wi9y');
define('NONCE_KEY', 'b(?=,UZH-AQZI*m~:7cr,#reg@!d|na&F/k:|=+cycSB)k4HH');
Lo que hacen estas claves es proteger las sesiones activas, por lo que puedes, por ejemplo, forzar una desconexión repentina de todos los usuarios simplemente cambiándolas.
<h2>Oculta la versión de WordPress</h2>Ocultar la versión de WordPress que estás utilizando hará que no sea tan fácil identificar tus vulnerabilidades en caso de no estar actualizado a la última versión. Incluyendo la siguiente línea en el archivo functions.php
de tu WordPress, ocultas esta información:
remove_action( 'wp_head', 'wp_generator' );
<h2>Proteger el archivo wp-config.php
</h2>
Mucha de la información secreta, como los datos de conexión para la base de datos, se almacena en wp-config.php
. Así que se debe evitar el acceso no deseado al mismo, algo fácil de limitar añadiendo las siguientes líneas al archivo .htaccess
:
<files wp-config.php>orderallow, deny
deny from all</files>
<h2>Proteger el archivo .htaccess
</h2>
Es un archivo de configuración muy importante que, al contener información relevante y de seguridad es importante protegerlo igualmente. Lo más curioso es que puede auto-protegerse añadiendo unas líneas de código a él mismo:
<files .htaccess>orderallow, deny
deny from all</files>
<h2>Acceso seguro a la administración</h2>
Forzar a utilizar un acceso seguro a WordPress mediante SSL, simplemente añadiendo estas líneas a tu archivo wp-config.php
:
define( 'FORCE_SSL_LOGIN', true );
define( 'FORCE_SSL_ADMIN', true );
Una vez guardados los cambios las páginas de administración de WordPress usarán el protocolo seguro https.
<h2>Desactivar el editor de archivos</h2>En caso de vulnerabilidad en el sistema de permisos de usuarios, el editor de plugins y temas incluido en WordPress puede ser una amenaza. Se puede desactivar añadiendo esta línea al archivo wp-config.php
:
define( 'DISALLOW_FILE_EDIT', true );
<h2>Evitar todos los comentarios de spam</h2>
Aunque existen muchos plugins que realizan esta funcionalidad, con unas pocas líneas en nuestro archivo .htaccess
podemos evitar que se dejen comentarios desde programas automatizados al tiempo que permiten comentarios de visitantes normales:
<IfModule mod_rewrite.c>RewriteEngineOnRewriteCond%{REQUEST_METHOD} POST
RewriteCond%{REQUEST_URI} .wp-comments-post.php*
RewriteCond%{HTTP_REFERER} !.*tublog.com* [OR]RewriteCond%{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]</IfModule>
<h2>Protección contra inyecciones SQL</h2>
Las inyecciones SQL en la base de datos son actualmente el método más habitual de atacar webs. Puede proteger tu WordPress de este método añadiendo unas líneas en el archivo .htaccess
:
Options +FollowSymLinks
RewriteEngineOnRewriteCond%{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]RewriteCond%{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]RewriteCond%{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
<h2>¿Es mi web ahora un sitio seguro?</h2>
Digamos que ahora es más segura que al inicio de su instalación. Eso no significa que no podamos seguir reforzándola.
Con estos consejos ayudamos a poner trabas a aquellos que quieren atacar nuestro sitio web. Para terminar os dejo con algunos recursos sobre seguridad WordPress que espero os sean de utilidad.
Déjame tus mensajes, y si te ha gustado no dudes en compartir.