Cómo añadir cabeceras de seguridad HTTP en WordPress

Wordpress, Seguridad

Te enseño cómo añadir las cabeceras de seguridad HTTP al fichero htaccess, y securizar tu WordPress. Rápido, conciso, con ejemplos.

  • Tiempo de implementación:5 min
  • Nivel de dificultad: Fácil

Reglas a implementar en el htaccess

# ENCABEZADOS DE SEGURIDAD #

<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
#Header always set Content-Security-Policy "default-src 'self';"
Header set Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=(), magnetometer=(), gyroscope=(), fullscreen=(self), sync-xhr=(self)"
</IfModule>

# FIN ENCABEZADOS DE SEGURIDAD #

Explicación de lo que hace cada línea

Strict-Transport-Security “max-age=31536000; includeSubDomains”:

  • Nombre: HTTP Strict Transport Security (HSTS).
  • Propósito: Esta directiva asegura que el navegador solo se conecte al sitio web utilizando HTTPS, incluso si el usuario intenta acceder a través de HTTP.
  • Detalles:
    • max-age=31536000: Especifica que la política debe ser cacheada (recordada) por el navegador durante 31,536,000 segundos, que es equivalente a un año.
    • includeSubDomains: Asegura que la política se aplique también a todos los subdominios del sitio.

X-Frame-Options “SAMEORIGIN”:

  • Nombre: X-Frame-Options.
  • Propósito: Previene que el sitio web sea incrustado en un iframe en otros sitios, protegiendo contra ataques de clickjacking.
  • Detalles:
    • SAMEORIGIN: Solo permite que el sitio sea incrustado en un iframe en el mismo origen (dominio).

X-XSS-Protection “1; mode=block”:

  • Nombre: X-XSS-Protection.
  • Propósito: Activa la protección XSS incorporada en algunos navegadores.
  • Detalles:
    • 1: Activa la protección.
    • mode=block: Si se detecta un ataque XSS, el navegador bloqueará la respuesta en lugar de intentar limpiar el contenido.

X-Content-Type-Options “nosniff”:

  • Nombre: X-Content-Type-Options.
  • Propósito: Previene ataques basados en el mime sniffing.
  • Detalles:
    • nosniff: Instruye al navegador que no intente adivinar (“sniff”) el tipo MIME de un recurso y que use el tipo MIME declarado en el encabezado Content-Type.

Referrer-Policy “strict-origin-when-cross-origin”:

  • Nombre: Referrer-Policy.
  • Propósito: Controla cuánta información se incluye en el encabezado de referente cuando se navega a otra página o se solicita un recurso.
  • Detalles:
    • strict-origin-when-cross-origin: Envia el origen completo cuando se realiza una solicitud en el mismo origen, pero solo el dominio (sin la ruta) cuando se realiza una solicitud a un origen diferente.

Permissions-Policy “geolocation=(), … , sync-xhr=(self)”:

  • Nombre: Permissions-Policy.
  • Propósito: Controla qué características y API pueden ser utilizadas en el navegador.
  • Detalles:
    • geolocation=()microphone=(), etc.: Desactiva el acceso a la geolocalización, micrófono, cámara, etc. para todos los orígenes.
    • speaker=(self)fullscreen=(self)sync-xhr=(self): Permite el acceso a estas características solo desde el mismo origen.

Sobre Content-Security-Policy

Falta establecer el Content-Security-Policy, que requiere un estudio detallado de las fuentes autorizadas a las que cada documento del servidor puede solicitar datos. Puedes consultar la documentación al respecto: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy

Verifica los encabezados

Esta herramienta permite verificar los encabezados online: https://securityheaders.com/

Continua leyendo

Los peligros de las extensiones para el navegador y cómo mitigarlos

Las extensiones del navegador pueden representar riesgos para tu seguridad y privacidad si no tomas precauciones. En este artículo te enseño a protegerte de extensiones dañinas.
wordpress noindex resultados de busqueda

Páginas noindex aparecen en búsquedas de WordPress: Cómo arreglarlo

En esta entrada te explico como prevenir que las páginas o entradas de tu Wordpress que has marcado como noindex, y que por lo tanto no deseas que los buscadores las rastreen, no aparezcan tampoco en los resultados de búsqueda del buscador interno de Wordpress.
Botón flotante de Whatsapp sitewide

Cómo insertar un botón flotante de WhatsApp en TODO el sitio WordPress (sin plugins)

En 2 minutos te enseño a insertar un botón flotante de Whatsapp en todo tu sitio Wordpress, totalmente gratis, y sin plugins.