Cabeceras de seguridad para tu WEB

Cabeceras HTTP: la carta invisible que protege tu WordPress
Seguridad en WordPress

La carta invisible que protege tu WordPress

Un café virtual para entender las cabeceras HTTP sin tecnicismos: qué son, para qué sirven y cómo configurarlas tú mismo.

01 — La analogía

¿Qué demonios son las cabeceras HTTP?

Imagina que tu navegador y el servidor de tu hosting son dos personas haciendo una mudanza. Cuando escribes tudominio.com, tu navegador manda una carta pidiendo la página. El servidor responde con los archivos… y una segunda carta pegada por fuera, invisible, con instrucciones de comportamiento. Esa carta son las cabeceras HTTP.

Navegador

«Oye, necesito la página de inicio.»

Petición HTTP: el primer sobre que sale hacia el servidor.

Servidor

«Aquí tienes el contenido — y unas normas para manejarlo.»

Junto al diseño, las fotos y los textos, viaja el sobre transparente: las cabeceras.

02 — Su trabajo

Dos misiones, ni una más

Toda esa información invisible sirve, en el fondo, para dos cosas.

🛡️

Seguridad a prueba de bombas

Actúan como el guardaespaldas de tu discoteca particular: solo confían en tus scripts, bloquean fuentes extrañas y evitan que tu web quede atrapada en una trampa de otro sitio.

Rendimiento y SEO

Le dicen al navegador qué guardar en caché para que la próxima visita cargue volando. Y ya sabes: Google ama las webs rápidas.

03 — Las reinas del mambo

Las cabeceras que de verdad importan

No hace falta aprenderse cincuenta. Con estas cinco, los escáneres de seguridad (GTmetrix, Security Headers…) suelen quedar contentos.

click
jack

X-Frame-Options

Evita que otros sitios metan tu página dentro de un iframe, previniendo ataques de clickjacking.

mime
type

X-Content-Type-Options

Impide que el navegador «adivine» el tipo de archivo. Si dice imagen, es imagen — nada de scripts camuflados.

ref
errer

Referrer-Policy

Controla cuánta información sobre la página de origen se comparte al hacer clic en un enlace externo.

cam ·
mic

Permissions-Policy

Prohíbe usar la cámara, el micrófono o la geolocalización del visitante sin permiso explícito.

CSP

Content-Security-Policy

La madre de todas las cabeceras. Crea una lista blanca de dónde está permitido cargar imágenes, scripts, fuentes y estilos. La más compleja, la más potente.

04 — Manos a la obra

Cómo configurarlas a mano

Sin plugins de trescientas líneas: directo al archivo de configuración de tu servidor.

  1. Conéctate por FTP o entra al Administrador de Archivos de tu cPanel / Plesk.
  2. Ve a la carpeta raíz de WordPress (donde están wp-content y wp-config.php).
  3. Busca el archivo .htaccess — activa «mostrar archivos ocultos» si no aparece.
  4. Pega el siguiente bloque justo antes de las reglas de WordPress.
<IfModule mod_headers.c>
    # Evita que tu web sea enmarcada en otras webs (Clickjacking)
    Header always set X-Frame-Options "SAMEORIGIN"

    # Evita la suplantación de tipos MIME
    Header always set X-Content-Type-Options "nosniff"

    # Controla la información de referidos
    Header always set Referrer-Policy "strict-origin-when-cross-origin"

    # Restringe el uso de hardware (cámara, micro, etc.)
    Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
</IfModule>

Guarda, limpia la caché del navegador y comprueba tu web. Si algo se rompe, quita las líneas de una en una hasta encontrar la conflictiva.

  1. Nginx no lee .htaccess: edita el archivo de configuración de tu dominio, normalmente en /etc/nginx/sites-available/tudominio.
  2. Añade estas líneas dentro del bloque server { ... }.
  3. Guarda y recarga el servicio con sudo systemctl reload nginx.
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

¿Hosting compartido sin acceso root? Busca «cabeceras personalizadas» en tu panel de control o pídeselo al soporte técnico.

⚠️

Ojo con esto

Algunas reglas (sobre todo la CSP o los marcos) pueden romper un plugin o una plantilla antigua que cargue scripts externos de forma extraña. Ve probando línea a línea si algo falla.

¿Ya navegabas con las cabeceras puestas?

O acabas de descubrir que tu servidor iba a pecho descubierto. Cuéntamelo en los comentarios.

🧩

¿Prefieres no tocar código?

Si eres principiante o te da miedo romper algo, hay un plugin gratuito que deja las cabeceras listas en 5 minutos.

Menú → Plugins → CAS Free Antivirus
Cabeceras HTTP explicadas sin tecnicismos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *