La mayoría de ataques exitosos contra sitios web explotan vulnerabilidades conocidas, mal configuradas o no parcheadas. La buena noticia: el 80% de estos riesgos pueden eliminarse en menos de una hora con los 10 pasos siguientes.
Esta guía está pensada para PYMES y responsables técnicos que quieren mejorar su postura de seguridad rápidamente, sin experiencia avanzada en ciberseguridad.
Paso 1: Forzar HTTPS en todo el sitio
HTTPS cifra las comunicaciones entre tu servidor y los navegadores. Sin él, cualquiera en la misma red puede interceptar los datos — contraseñas, datos personales, información de pago.
Cómo hacerlo:
Si utilizas un hosting como Arsys, SiteGround, Ionos o cualquier hosting compartido, activa el certificado SSL gratuito Let's Encrypt desde tu panel de control. La operación lleva 5 minutos.
Después, configura una redirección permanente de HTTP a HTTPS:
# Apache (.htaccess)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Nginx
server {
listen 80;
return 301 https://$host$request_uri;
}
Verificación: Escribe http://tusitio.es en el navegador — debes ser redirigido automáticamente a https://.
Paso 2: Configurar los headers de seguridad esenciales
Los headers HTTP de seguridad protegen contra ataques XSS, clickjacking y MIME sniffing. Se añaden en pocas líneas de configuración.
Los 4 headers prioritarios:
# Apache (.htaccess)
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Para una guía completa sobre headers de seguridad, consulta nuestro artículo dedicado: Headers HTTP de seguridad.
Paso 3: Actualizar CMS, plugins y temas
El 60% de los hackeos de WordPress explotan plugins desactualizados. Aplica las actualizaciones pendientes ahora mismo:
- WordPress: Panel → Actualizaciones → Actualizar todo
- PrestaShop: Back Office → Módulos → Actualizaciones
- Drupal: Admin → Informes → Actualizaciones disponibles
- Joomla: Panel → Actualización de Joomla + Extensiones
Regla de oro: activa las actualizaciones automáticas para parches de seguridad. Si un plugin lleva más de 6 meses sin actualizar, busca una alternativa.
Paso 4: Contraseñas robustas y MFA
Cambia todas las contraseñas que no cumplan estos criterios:
- Mínimo 12 caracteres (16 para cuentas admin)
- Mezcla de mayúsculas, minúsculas, números y símbolos
- Única para cada servicio (no reutilizada)
- Almacenada en un gestor de contraseñas (Bitwarden, 1Password)
Activa la autenticación de dos factores (MFA/2FA) en:
- Panel de administración del CMS
- Hosting y panel de control
- Correo electrónico
- Cualquier servicio con acceso a datos sensibles
Paso 5: Eliminar lo que no necesitas
Cada plugin, tema o script que no usas es una superficie de ataque gratuita para los atacantes:
- Plugins inactivos: desinstálalos (no basta con desactivar)
- Temas no utilizados: elimínalos (conserva solo el activo y un tema por defecto)
- Páginas de prueba: borra las páginas /test, /demo, /staging
- Usuarios obsoletos: elimina cuentas de antiguos colaboradores
- Archivos de instalación: borra install.php, readme.html, license.txt
Paso 6: Configurar backups automáticas
Sin backup, un ransomware o un error humano pueden destruir años de trabajo:
- Frecuencia mínima: diaria para sitios con contenido dinámico
- Almacenamiento: en un lugar diferente del servidor (cloud, disco externo)
- Verificación: restaura el backup en un entorno de prueba al menos una vez al trimestre
- Retención: conserva al menos 30 días de histórico
Plugins recomendados: UpdraftPlus (WordPress), Akeeba Backup (Joomla).
Paso 7: Proteger el panel de administración
El panel de administración es el objetivo principal de los ataques de fuerza bruta:
- Cambia la URL por defecto (/wp-admin, /administrator) con un plugin de seguridad
- Limita los intentos de login fallidos (3-5 intentos, bloqueo 15 min)
- Restringe el acceso por IP si es posible (oficina, VPN)
- Utiliza un WAF (Web Application Firewall): Cloudflare, Sucuri, Wordfence
Paso 8: Revisar los permisos de archivos y directorios
Permisos incorrectos pueden permitir a un atacante modificar archivos del servidor:
# Permisos correctos para WordPress/CMS
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
chmod 440 wp-config.php # Archivo de configuración solo lectura
Regla: los directorios nunca deben tener permisos 777. Los archivos de configuración deben ser solo lectura.
Paso 9: Configurar monitorización básica
No puedes proteger lo que no monitorizas:
- Uptime monitoring: recibe alertas si tu sitio se cae (UptimeRobot, Pingdom — planes gratuitos)
- Escaneos de seguridad: programa escaneos periódicos con WarDek
- Google Search Console: alerta de problemas de seguridad detectados por Google
- Logs del servidor: revisa los logs de acceso periódicamente para detectar anomalías
Paso 10: Escanear vulnerabilidades
Después de implementar los 9 pasos anteriores, verifica que todo está correctamente configurado:
- Ejecuta un escaneo WarDek para obtener una puntuación de seguridad
- Revisa las recomendaciones priorizadas
- Corrige los problemas identificados
- Programa escaneos periódicos (mensual mínimo)
Recursos del INCIBE para PYMES
El INCIBE ofrece recursos gratuitos para empresas españolas:
- Protege tu empresa: guías sectoriales de ciberseguridad
- 017 Línea de ayuda: consultas gratuitas sobre seguridad
- Kit de concienciación: materiales de formación para empleados
- Herramientas de diagnóstico: evaluación online de tu nivel de seguridad
Escanea tu sitio web gratis con WarDek — OWASP, NIS2, RGPD, AI Act en un solo escaneo.