Seguridad WordPress

Seguridad en WordPress: Medidas clave para proteger tu sitio web

En cualquier sitio web desarrollado con WordPress, es crucial considerar la seguridad para prevenir ataques de ciberseguridad que podrían ser muy perjudiciales para tu negocio. Os explicamos los puntos más importantes a tener en cuenta para reforzar la seguridad de tu sitio:

Contraseñas seguras

Usa siempre contraseñas seguras, las que nos sugiere WordPress o crearlas con un generador de contraseñas.

  • Forzar a los usuarios a utilizar contraseñas seguras
  • Usar mayúsculas, minúsculas, números y símbolos (si puedes incluye el carácter «ñ», dificulta el descifrado de la contraseña a los ciberdelincuentes)
  • No usar la misma contraseña para otros sitios web o aplicaciones.
  • Uso de 2FA(Doble factor de autenticación)
Seguridad en WordPress: Medidas clave para proteger tu sitio web

2FA Doble factor de autenticación

Con este método, verificamos el acceso mediante un código adicional que se envía por correo electrónico o con una aplicación para asegurarnos que es el usuario el que ha insertado la contraseña y no otra persona.

Para esto existen varios plugins y opciones que nos permiten activar esta funcionalidad:

Plugins para 2FA

Estos usan varios sistemas como, por email, códigos de respaldo, Google Authenticator o Authy. Normalmente, nosotros usamos Google Authenticatator, aunque cualquier otra aplicación compatible puede funcionar. Hay que descargar la APP en tu móvil, y después de instalar el plugin escanear el QR Code que nos da al acceder a la configuración de estos plugins. Algunas opciones de plugins para implementar 2FA en tu WordPress:

Configuración de htaccess

Bloquear permisos de ficheros de la raíz de WordPress

<files wp-config.php>
 deny from all
</files>
<files readme.html>
 deny from all
</files>
<files license.txt>
 deny from all
</files>

Desactivar PHP en la carpeta uploads. En esta carpeta no debería ejecutarse ningún archivo PHP. Para evitarlo, podemos añadir un archivo .htaccess en la carpeta /wp-content/uploads/ con el siguiente código:

<Files *.php>
 deny from all
</Files>

Cambiar o proteger acceso a directorio wp-admin

Añadir contraseña adicional al acceso a WP-ADMIN. Primero tenemos que crear el fichero .htpasswd con el usuario y contraseña, podemos usar la herramienta HTPassword Generator para esto, y subimos este fichero, si puede ser en una carpeta no pública, depende del hosting, pero normalmente fuera de la carpeta (public, www, https o similar). Luego editamos el fichero .htaccess de la carpeta /wp-admin/ y añadimos el siguiente código:

<Files wp-login.php>
 AuthType Basic 
 AuthUserFile /RUTA DONDE SE HA SUBIDO EL FICHERO/.htpasswd
 AuthName "Acceso restringido"
 require require valid-user
</Files>
Seguridad en WordPress: Medidas clave para proteger tu sitio web

Hosting

El hosting donde tenemos alojada nuestra web es algo fundamental para la seguridad y rendimiento de nuestro sitio web, es importante elegir un buen proveedor de hosting. Factores a tener en cuenta para seleccionar un buen proveedor de hosting:

  • Certificados SSL
  • Firewall
  • Backups automáticos
  • Actualizaciones de sistema: panel de control, versiones de PHP, MariaDB…
  • Monitoreo de Malware
  • Ubicación del servidor
  • Caché a nievl de servidor
  • CDN
  • Recursos necesarios: CPU, RAM
  • Soporte PHP y MySQL
  • Soporte técnico de calidad y tiempo de respuesta rápido

Base de datos

Asegúrate de que la conexión a la base de datos se realice únicamente desde el mismo servidor, a menos que sea necesario permitir conexiones externas.

Usar un prefijo distinto a wp_ al crear las tablas de la base de datos.

Permisos de ficheros

Normalmente, esto ya está correctamente configurado por los proveedores de hosting, pero recomendamos verificar que los permisos sean 755 para carpetas y 644 para archivos.

Recomendamos cambiar el .htaccess y wp-config a 444, una vez realizado estos ficheros no se podrán modificar por ningún plugin, será necesario volver a cambiar los permisos si lo necesitamos, pero una vez realizada la modificación de estos mejor dejarlos otra vez a 444.

Seguridad en WordPress: Medidas clave para proteger tu sitio web

Firewall y CDN

Aunque tengamos firewall a nivel de servidor, en algunos proyectos puede que necesitemos mayor seguridad e implementar un firewall más avanzado con una CDN. Para esto recomendamos Cloudflare, la versión gratuita es bastante completa y luego tiene los planes de pago si queremos más opciones.

Fichero wp-config

El fichero wp-config tiene definidos parámetros necesarios para el funcionamiento de nuestra web, adicionalmente podemos añadir o modificar algunos para reforzar la seguridad.

Evitar cambios de la URL del sitio

Aquí forzamos que no se pueda cambiar la URL del sitio, esto nos evita problemas si algún usuario con acceso lo modifica por error y deja sin funcionar el sitio web:

define('WP_SITEURL', 'https://www.misitio.com');
define('WP_HOME', 'https://www.misitio.com');

Security Keys

Utiliza las Security Keys de WordPress, puedes generarlas con la herramienta WordPress Salt Generator. Ejemplo de resultado:

define('AUTH_KEY',         'JNi2Dv_t%_W+gV{nK4Vv`uK*M*6[OtlJ#rP$(f9DG0z?P0^y09XL4o(S9L^~1zX<');
define('SECURE_AUTH_KEY',  'WE`D@muXcUptpCLiwe+|th)-R+)Q,l]mCh2dADLV6-u;acFH6HTvKB>x{9CYW#Ri');
define('LOGGED_IN_KEY',    'yF&TWBe~q<6kJv`[XYrkH>j0U.[;:vZNpXE`G~(Z5-1@-&0 %JuQdp+HhZiYCV$1');
define('NONCE_KEY',        'h!Q$4RH68xQm8kUa^Qp wpSm<+K5K-wy1FiID~|Has$D1@KK^7+E+4H9#4r7ynEl');
define('AUTH_SALT',        'D*=w-_k&X^HHeE+0Oi.hpuf*Dh#qXr28+J1C-D6}zZhG[L(|1B+Z6}8yrU!>8sJP');
define('SECURE_AUTH_SALT', 'sXUpJg(7U1?^]kgg|`(%H.RFmxNb|[#F^|i&yTz^s|[C _Y=o#I SHamv;@K@AV0');
define('LOGGED_IN_SALT',   'q>|}s{PB/|/z|[7)sqDY[X#E%)5NldUqsgga;w>K@akygw%eTD^$7_Gke28fgv>d');
define('NONCE_SALT',       'oCv_Z^v*QkS+s)t7q>np?Bv`2n7l`pRidTQbD8CV[-gBeFgBPrch?ZD3`|*jvEG3');

Forzar el uso de SSL

Es necesario instalar un certificado SSL para que los usuarios naveguen de forma segura, esto nos lo debería de proporcionar nuestro hosting donde tenemos la web. Si queremos forzarlo en nuestro WordPress, para que siempre se navegue con https por nuestra web, lo podemos hacer añadiendo estas líneas en el fichero wp-config:

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

Plugins de seguridad

Los plugins de seguridad facilitan mucho la implementación de algunas y otras medidas de seguridad de las mencionadas. Aunque solo recomiendo su uso en algún caso puntual y tenerlos siempre actualizados a la última versión(activar actualizaciones automáticas). A continuación algunos de los más populares:

  • Wordfence
  • SolidSecurity
  • All In One WP Security Firewall
  • iThemes Security
  • Sucuri Security

Estos plugins pueden ser bastante pesados y a menudo duplican funcionalidades que podemos implementar fácilmente con algunas líneas de código o que quizás ya estén presentes en nuestro hosting.

Mantenimiento web

Lo más importante para tener un sitio seguro es que este lleve un buen mantenimiento web:

  • Actualizar WordPress y plugins periódicamente
  • Actualizar la versión de PHP y de la base de datos cuando sea recomendable por WordPress
  • Revisar que se realizan copias de seguridad
  • Tener monitorizado el sitio para detectar caídas
  • Avisos de cuando algún plugin tenga vulnerabilidades para actualizar cuanto antes
  • Realizar escáner de malware periódicamente
  • Comprobar que el sitio web envía correos electrónicos
Seguridad en WordPress: Medidas clave para proteger tu sitio web

Conclusiones

Aunque se pueden tomar muchas más medidas para aumentar la seguridad, os hemos comentado algunas de las que consideramos importantes. No es necesario implementar todas estas y dependerá de cada proyecto y sus particularidades, cuáles son mejor implementar y otras que necesiten alguna configuración más avanzada.

Si tus conocimientos son limitados para implementar estas tareas, recomendamos contratar a un profesional experto para asesorarte y aplicar estas configuraciones. Puedes contactar con nosotros para ayudarte a configurar tu sitio más seguro.