Vamos a resumir unas recomendaciones básicas de seguridad para que tu web en WordPress sea más segura. Te avisamos que no existe ningún sistema 100% seguro, pero si sigues estas recomendaciones de seguridad tu web será lo suficiente segura para que estés tranquilo.
La seguridad de tu web la podemos dividir en tres niveles distintos, a nivel de servidor, a nivel de usuario y a nivel de web.
Los dos primeros niveles son válidos para cualquier proyecto web, ya sea un PrestaShop, WordPress o proyecto a medida. Son recomendaciones de seguridad comunes que nos sirven para casi cualquier proyecto web. El último apartado está dedicado más a WordPress.
Vamos a verlos detalladamente.
Seguridad a nivel de servidor
Proveedor de hosting fiable
Usa un proveedor de hosting seguro y confiable. Que tenga la última versión de PHP, antivirus como inmunify y que use un firewall para bloquear ataques o IPs sospechosas.
Copias de seguridad
También que realice copias de seguridad periódicas y completas. Es imprescindible que el hosting haga las copias y las guarde en otros servidores, a ser posible que no estén ubicados físicamente en el mismo edificio en el que está tu servidor.
Hosting compartido
Asegúrate de que si tu hosting es compartido, tu cuenta esté correctamente aislada de las otras, de forma que no sea posible que un sitio infectado pueda infectar tu web.
Firewall
Es importante que tu hosting disponga de firewall activo. Esto evitará y bloqueará ataques desde diferentes IPs, denegando el acceso a tu web a atacantes ya conocidos.
También bloqueará a aquellos que realizan multitud de peticiones a la vez, como por ejemplo cuando intentan un ataque por fuerza bruta.
Seguridad a nivel de usuario
Usuarios administradores
Limita los usuarios con permiso Administrador, solamente deben ser usuarios administradores aquellos que vayan a realizar las tareas de administración, es decir, crear/editar usuarios, actualizar plugins, etc.
Puedes crear usuarios con menos permisos, como los Editores. Estos solo tendrán acceso a las publicaciones de WordPress, pero no al sistema de plugins. Si necesitas definir varios roles de usuario puedes ayudarte de un plugin como User Role Editor.
Nombres de usuario
Evita nombres de usuario tipo «admin» o si tu web es miwordpress.com, tampoco tengas usuarios administradores con nombre de usuario «miwordpress». Si tienes algún usuario con este tipo de nombre, te recomendamos cambiarlo. Para ello puedes o bien eliminar el usuario en cuestión y crear otro o bien también puedes entrar en PHPmyAdmin y cambiar en la tabla wp_users el nombre del usuario, cuidado, usa uno que no esté en uso actualmente.
Contraseñas seguras
Las contraseñas deben ser seguras, con carácteres alfanuméricos y símbolos, como se indica en la siguiente imagen:
Formación de los usuarios
Recuerda formarte y formar a tu personal a cargo en nociones básicas de seguridad informática como las siguientes:
- Utilizar claves seguras
- Evitar caer en el phising
- Desconfiar de correos que no se han solicitado
- Realizar copias de seguridad
- Tener los equipos actualizados
- Claves de acceso al ordenador individuales
Seguridad nivel de WordPress
Plugins y temas actualizados
Hay que procurar siempre tener tanto el sistema de WordPress como los plugins y temas que usamos actualizados a la última versión.
Los temas y plugins que no utilicemos eliminarlos. Limitar el número de plugins instalados y activos a los mínimos imprescindibles.
Por supuesto, tanto los plugins como los temas instalados que vengan de fuentes oficiales, nada de descargas de dudosa garantía.
Prefijo Tablas BBDD
En la instalación de WordPress, nos da como opción elegir el prefijo de las tablas de la base datos, cambiar el wp_ por cualquier otro prefijo nos proporcionará seguridad.
Es ideal hacerlo durante el proceso de instalación. Si no lo hiciste puedes probar el plugin Brozzme DB Prefix & Tools Addons
Antes de nada, haz una copia de seguridad completa de tu base de datos.
Plugins seguridad
Dispones de varios plugins que te van a proporcionar seguridad en tu WordPress, nosotros hemos probado Ithemes Security y Wordfence.
Cualquiera de estos dos plugins, siguiendo sus recomendaciones de seguridad predeterminadas protegerán tu WordPress. Te recomendamos que instales uno de los dos y actives las opciones básicas para protegerte.
Desactivar la edición de archivos
WordPress dispone de un editor de archivos, muy útil para hacer cambios en temas o plugins, o para añadir Google Analytics al functions.php de forma rápida. Sin embargo, si un atacante consigue hacerse con el panel admin, podrá editar estos archivos también. Lo recomendable es editar los archivos desde el propio PC y subirlos mediante FTP.
Para deshabilitar esta característica, entra en wp_config y añade el siguiente código:
define( 'DISALLOW_FILE_EDIT', true );
Si quieres volver a activar la funcionalidad, solo podrás hacerlo desde una cuenta FTP o desde el administrador de archivos de tu proveedor de hosting.
Autenticación en dos pasos
Activa la autenticación en dos pasos. Esto significa disponer de un método alternativo y obligatorio a la vez que te logueas en tu web. Es decir, no bastará solo con poner el usuario y la contraseña, también tendrás que introducir el código de seguridad que hayas recibido en tu móvil a través de sms o un código mostrado en tu aplicación de seguridad de tu teléfono.
Con wordfence por ejemplo puedes activar la autenticación en dos pasos de manera sencilla.
Protege wp-config.php
El archivo wp-config.php es de los más importantes, contiene los accesos a la base de datos, y la configuración del núcleo de WordPress. Una forma fácil de proteger este archivo es utilizando .htaccess y añadiendo las siguientes reglas:
<files wp-config.php>order allow,denydeny from all</files>
Esta reglas impedirán que nadie desde el exterior pueda acceder al archivo.
Protege wp-content/uploads
En esta carpeta se suben todas las imágenes y documentos que vamos a mostrar en nuestra web, es decir, solamente debe contener archivos multimedia. Es importante protegerla de scripts maliciosos que puedan «colarnos». Al igual que en el anterior punto, vamos a usar el archivo .htaccess. Lo primero que tenemos que hacer es crear un archivo .htaccess en el directorio wp-content/uploads si no lo tenemos ya y le añadimos las siguientes reglas:
<Files *.php>deny from all</Files>
Permisos de carpetas y archivos
Otra de las recomendaciones de seguridad es revisar los permisos de las carpetas y archivos de nuestra instalación WordPress. Por norma general, en una nueva instalación estos permisos son correctos, pero si por algún motivo estos han sido modificados deberás asignar los correctos.
Los permisos que deben tener son los siguientes:
Ficheros: 644
Directorios: 755
Aquí te dejamos un par de enlaces dónde explicamos cómo cambiar y qué permisos deben tener los archivos y carpetas.
Protege .htaccess
También podemos proteger el archivo .htaccess usando las propias reglas del mismo:
<files .htaccess>order allow,denydeny from all</files>Así evitaremos accesos no deseados a este archivo.
Cuídate del Spam
El spam puede no ser solamente molesto, también se puede utilizar para tratar de inyectar código malicoso y comprometer la seguridad de WordPress.
Formas de protegerse del spam:
- Añadir un captcha, como Google Recaptcha
- Activar algún plugin de comprobación de spam, como Akismet
- En la propia configuración de WordPress:
También podemos añadir filtros y reglas que automáticamente enviarán los comentarios a la papelera o los marcarán como spam:
Usa conexión segura SSL
Tu página web debe ser ya sí o sí https. Existen varios certificados que te proporcionan la encriptación adecuada. Quizás uno de los más comunes y más usados sea Let’s Encrypt, gratuito, seguro, automatizado y abierto.
Para configurar correctamente el SSL, te recomendamos instalar un plugin como Really Simple SSL que te ayudará a mejorar la seguridad de tu sitio.
Si tu proveedor de hosting no te ofrece un certificado SSL, ¡Cambia de proveedor!
Oculta la versión de WordPress
Cualquier versión de WordPress tiene una serie de fallos o vulnerabilidades que se suelen solventar al actualizar. Para ponerlo un poco más difícil a los atacantes podemos ocultar la versión de WordPress, así no sabrán qué vulnerabilidades le afecta.
Para ello, incluye en el functions.php del tema que estés usando la siguiente línea de código:
remove_action('wp_head', 'wp_generator');
Cambia el acceso predeterminado wp-admin / wp-login
El acceso predeterminado al escritorio de WordPress se realiza en
https : // dominio. com/wp-admin
https : // dominio. com/wp-login
Los atacantes intentarán acceder al escritorio mediante fuerza bruta. Para ello puedes cambiar estas urls de acceso o si utilizas un plugin como wordfence ya se implementan medidas contra los ataques por fuerza bruta.
Para cambiar la url de acceso al escritorio puedes usar un plugin como
WPS Hide Login
Herramientas para comprobar el estado de tu WordPress
- wpdoctor.es: Revisa WordPress en tiempo real
- https://transparencyreport.google.com/safe-browsing/search: para probar la salud de tu WordPress
- https://www.google.com/webmasters/tools/security-issues: También con Google Search Console puedes ver detalles de seguridad.
Salud del sitio
WordPress dispone de una herramienta que nos puede dar información muy valiosa sobre el estado general de nuestra instalación.
En el menú lateral, herramientas / salud del sitio puedes acceder a esta información.
Cabeceras de seguridad en .htaccess
Para mejorar la seguridad de tu sitio, puedes abrir tu archivo .htaccess
Antes de nada, realiza una copia de seguridad del contenido de tu archivo .htaccess y asegúrate de poder acceder al mismo si algo sale mal.
Forzar HTTP a HTTPS con redirección 301
<IfModule mod_rewrite.c>RewriteEngine onRewriteCond %{HTTPS} !=on [NC]RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]</IfModule>
HTTP Strict Transport Security
Header always set Strict-Transport-Security: "max-age=31536000" env=HTTPS
Content Security Policy: Upgrade Insecure Requests
Header always set Content-Security-Policy "upgrade-insecure-requests"
X-XSS protection
Header always set X-Content-Type-Options "nosniff"
X-Content Type Options
Header always set X-XSS-Protection "1; mode=block"
Referrer-Policy
Header always set Referrer-Policy: "no-referrer-when-downgrade"
Expect-CT
Header always set Expect-CT "max-age=7776000, enforce"
Referencias y fuentes:
Este documento se ha realizado con fuentes propias y también siguiendo las recomendaciones de estas fuentes:
Fuente 1 | Fuente 2 | Fuente 3 | Fuente 4
Si necesitas ayuda con la seguridad de tu WordPress, contacta con nosotros, seguro que podemos ayudarte.