Cabeceras HTTP de Seguridad para WordPress

Cabeceras HTTP de Seguridad para WordPress

Última actualización:

Descubre las cabeceras de respuesta HTTP esenciales que pueden mejorar la seguridad de tu sitio web de WordPress.

En Wetopi, incorporamos Cabeceras de Seguridad HTTP en tu servidor de WordPress. Esto ayuda a restringir las acciones que los navegadores pueden realizar en tu sitio web y añade una capa extra de seguridad. Las cabeceras de seguridad dificultan mucho que los atacantes exploten vulnerabilidades del lado del cliente.

Tabla de contenidos

Las cabeceras de seguridad HTTP básicas

En Wetopi desplegamos servidores de WordPress que están preconfigurados por defecto con lo que clasificamos como cabeceras de seguridad HTTP básicas. Estas cabeceras son ampliamente aceptadas y no comprometen las funcionalidades estándar de tu sitio de WordPress.

Protegiéndote del clickjacking

Normalmente, el clickjacking implica mostrar un elemento invisible sobre la página que ve el usuario. El usuario cree que está haciendo clic en la página visible, pero, de hecho, está haciendo clic en un elemento invisible superpuesto sobre ella.

Clickjacking (clasificado como un ataque de rediseño de interfaz de usuario o rediseño de UI) es una técnica maliciosa para engañar a un usuario y que haga clic en algo diferente de lo que percibe.

https://en.wikipedia.org/wiki/Clickjacking

Por defecto, todos los servidores de Wetopi están configurados con esta cabecera HTTP. Si no estás alojado en Wetopi, puedes añadir fácilmente esta cabecera a la configuración de tu servidor Nginx utilizando la directiva add_header:

add_header X-Frame-Options SAMEORIGIN;

NOTA: al especificar SAMEORIGIN, aún podemos usar la página dentro de un marco si este marco y su página tienen el mismo dominio. Por otro lado, si no necesitas presentar información en marcos, puedes reemplazar «SAMEORIGIN» por «DENY».

Sirviendo contenido siempre en HTTPS

La segunda cabecera de seguridad HTTP básica que implementamos por defecto en Wetopi es conocida como HSTS: HTTP Strict Transport Security.

Por defecto, todos los servidores de Wetopi están configurados con esta cabecera HTTP. Si tu sitio no está alojado en Wetopi, puedes añadir fácilmente esta cabecera a la configuración de tu servidor Nginx utilizando la siguiente directiva add_header:

add_header Strict-Transport-Security "max-age=31536000; preload";

Esta cabecera instruye al navegador para interactuar con tu servidor de WordPress usando solo conexiones HTTPS. El atributo max-age especifica la duración, en segundos, que el navegador debe recordar para hacer cumplir HTTPS para el sitio web.

Evita la explotación de inconsistencias tipo MIME para ejecutar código malicioso en un sitio web

El propósito de la cabecera de respuesta HTTP X-Content-Type-Options es prevenir que los atacantes ejecuten código malicioso en un sitio web. Lo logra impidiendo que el navegador interprete un archivo como un tipo MIME diferente al que realmente es.

add_header X-Content-Type-Options nosniff;

Esta cabecera HTTP está configurada por defecto en todos los sitios alojados en Wetopi.

Lee más sobre X-Content-Type-Options en la documentación de Mozilla.

Con Wetopi tienes Servidores de Desarrollo GRATUITO, con Brotli activado,
y afinados meticulosamente para servir WordPress a toda velocidad.

Regístrate en 10 segundos y consigue tu cuenta gratuita en wetopi

Cabeceras de seguridad HTTP avanzadas

En esta sección, introduciremos cabeceras de seguridad más recientes y avanzadas. En Wetopi no implementamos estas cabeceras por defecto debido a la necesidad de adaptar su configuración según los requisitos del sitio web.

La Política de Seguridad de Contenido CSP

La cabecera de Política de Seguridad de Contenido está diseñada para ayudarnos a mitigar ataques como Cross-Site Scripting (XSS) y la inyección de datos.

Las cabeceras CSP imponen reglas estrictas y detalladas sobre cómo nuestro sitio web carga y ejecuta recursos, protegiéndonos de la distribución de malware, el desconfiguramiento del sitio y el robo de datos.

Las cabeceras de Política de Seguridad de Contenido (CSP) definen un mecanismo, mediante el cual los desarrolladores web pueden controlar los recursos que una página en particular está autorizada a obtener o ejecutar. También dictan una serie de decisiones de política relevantes para la seguridad.

Borrador de Trabajo de Política de Seguridad de Contenido del W3C

El formato de la cabecera de Política de Seguridad de Contenido es el siguiente:

Política de Seguridad de Contenido: directiva parámetro;

También puedes definir múltiples directivas en una sola cabecera separándolas con punto y coma:

Política de Seguridad de Contenido: directiva parámetro; directiva parámetro;

Además, puedes incluir esta cabecera varias veces.

Política de Seguridad de Contenido: directiva parámetro; directiva parámetro;
Política de Seguridad de Contenido: directiva parámetro;

Estas múltiples cabeceras son acumulativamente restrictivas, lo que significa que solo puedes restringir aún más las capacidades del recurso protegido.

Cómo definir la cabecera de Política de Seguridad de Contenido

Implementar la cabecera de Política de Seguridad de Contenido (CSP) implica varios pasos:

1. Entiende las Directivas CSP

Familiarízate con las directivas CSP, que definen las restricciones para los recursos en tu página web. Las directivas comunes incluyen default-src, script-src, style-src, img-src, font-src, connect-src, frame-src, media-src, object-src, y child-src.

Obtén una visión completa de la Política de Seguridad de Contenido (CSP)
Guía de Referencia Rápida

https://content-security-policy.com/
2. Define Tu Política CSP

Si tienes un profundo entendimiento de tu sitio y de sus necesidades de recursos internos y externos, puedes desplegar tu política CSP manualmente. De lo contrario, nuestra recomendación es usar una herramienta generadora.

La herramienta generadora de CSP que actualmente usamos es el Generador de Políticas GRATUITO de csper.io. Puedes instalarla en tu navegador (Chrome o Firefox), y te permite recopilar directivas para tu CSP mientras navegas por tu sitio web.

Extensión de navegador del Generador de Política de Seguridad de Contenido
3. Cómo Desplegar CS y Monitorear Violaciones

Agrégala a la configuración de tu servidor web e inspecciona la consola del navegador para encontrar las Violaciones de Política.

IMPORTANTE: Con sitios WordPress, recomendamos un doble conjunto de reglas CSP. Una para el Frontend y una segunda menos estricta para el Dashboard (el wp-admin)

Considera desactivar las reglas de Política de Seguridad de Contenido (CSP) específicamente dentro del área /wp-admin. Aunque este ajuste representa un compromiso de seguridad, puede mejorar la compatibilidad y funcionalidad dentro del Dashboard de WordPress.

Puedes desplegar la cabecera CSP en tu servidor WordPress nginx con la siguiente add_header:

...

location /wp-admin {
    include  /var/www/conf/mime.types;
    try_files $uri $uri/ /index.php?$args;
}


location / {
    include  /var/www/conf/mime.types;

    add_header Política de Seguridad de Contenido "default-src 'self'; 
                                        script-src 'report-sample' 'self' 'unsafe-inline' 'unsafe-eval' https://unpkg.com/;
                                        style-src 'report-sample' 'self' 'unsafe-inline'; object-src 'none'; base-uri 'self';
                                        connect-src 'self' https://api.websitecarbon.com 
                                        frame-src 'self' https://www.youtube.com; 
                                        font-src 'self' data:;
                                        img-src 'self' data: https://s.w.org https://i.ytimg.com;
                                        manifest-src 'self'; 
                                        media-src 'self'; 
                                        worker-src 'self' blob:;";
    
    try_files $uri $uri/ /index.php?$args;
}

...

Una vez hecho, navega por tu sitio mientras inspeccionas la consola en tus Herramientas para Desarrolladores.

Errores de Violación de Política de Seguridad de Contenido en la Consola del Desarrollador
4. Arregla la Política de Seguridad y prueba de nuevo

Siguiendo la descripción del error, arregla la regla rota y prueba de nuevo.

La Política de Permisos

La cabecera HTTP Política de Permisos es similar a la anterior Política de Seguridad de Contenido, pero controla características en lugar de comportamientos de seguridad.

El formato de esta cabecera Política de Permisos es el siguiente:

Política de Permisos: directiva=lista de permitidos

Ejemplo cuando se define para un servidor nginx:

add_header Política de Permisos "picture-in-picture=(), geolocation=(self https://wetopi.com), camera=*";

Al especificar () en la lista de orígenes, las características especificadas serán deshabilitadas para todos los contextos de navegación.

La Cabecera de Política de Referencia

La cabecera HTTP Política de Referencia  está diseñada para limitar la cantidad de información que se envía cuando un visitante de un sitio web hace clic en un enlace.

Esta Política de Referencia puede ayudar a aumentar nuestra privacidad y seguridad:

  • Al establecer una política más estricta, los sitios web pueden evitar que la información sensible se filtre a través de la cabecera Referer al navegar de una página a otra.
  • En ciertos escenarios, como al navegar de un sitio HTTPS a uno HTTP, la cabecera Referer podría exponer inadvertidamente información sensible, como tokens de autenticación o identificadores de sesión.
  • También puede prevenir ataques de suplantación de referencias, donde un atacante manipula la cabecera «Referrer» para obtener acceso no autorizado o engañar al servidor.

Conclusión

La implementación en Wetopi de cabeceras de seguridad HTTP básicas en servidores de WordPress mejora significativamente la seguridad del sitio web.

Al preconfigurar los servidores con cabeceras de seguridad básicas como X-Frame-Options y Strict-Transport-Security, Wetopi asegura protección contra amenazas comunes como el clickjacking y las conexiones HTTPS forzadas.

Las opciones avanzadas, incluyendo la Política de Seguridad de Contenido y la Política de Permisos, proporcionan una mayor personalización para cumplir con requisitos de seguridad específicos, mitigando eficazmente riesgos como los ataques XSS y de inyección de datos.

El uso estratégico de estas cabeceras no solo fortalece el panorama de seguridad de tu sitio de WordPress, sino que también mantiene su funcionalidad y experiencia de usuario.

Adoptar tales medidas de seguridad proactivas es crucial para salvaguardar las interacciones del lado del cliente y preservar la integridad de tu presencia digital.

¿No tienes una cuenta en wetopi?

Incluye servidores desarrollo Gratis.
Sin tarjeta de crédito.

Compara wetopi con tu hosting actual

Date de alta, pide una migración y compara.

Hacemos una copia de tu web gratis y sin esfuerzo por tu parte.

Sin letra pequeña.
Sin compromisos.
Sin tarjeta de crédito.