---
title: Cabeceras de seguridad
canonical: https://wpsecurityninja.com/docs/security-fixes/cabeceras-de-seguridad/
---
Las cabeceras de seguridad forman parte de la respuesta HTTP que envía tu servidor. Indican al navegador cómo tratar HTTPS, el framing, los tipos de contenido y reglas de endurecimiento similares.

En Pro, puedes activar muchas desde **Security Ninja → Correcciones**. También puedes configurarlas en `.htaccess`, Nginx o PHP. Las cabeceras mal configuradas (especialmente CSP) pueden romper el sitio, así que prueba tras cada cambio.

![Casillas de cabeceras de seguridad en la página Correcciones](https://wpsecurityninja.com/media/2026/08/security-fixes/security-headers.png)

## Strict Transport Security (HSTS)

HSTS indica a los navegadores que usen solo HTTPS. Confirma que tu certificado SSL funciona en todo el sitio antes de activarlo.

Ejemplo PHP (prefiere un tema hijo o plugin pequeño):

```php
header( 'Strict-Transport-Security: max-age=31536000;' );
```

Apache (`.htaccess`):

```apache
#BEGIN WP Security Ninja - Forces only HTTPS
	<IfModule mod_headers.c>
	Header set Strict-Transport-Security "max-age=31536000;"
	</IfModule>
#END WP Security Ninja - Forces only HTTPS
```

Añade `includeSubDomains` si quieres que la política cubra subdominios.

Nginx (bloque server):

```nginx
add_header Strict-Transport-Security "max-age=31536000;";
```

Más información: [https://hstspreload.org](https://hstspreload.org)

## Content Security Policy (CSP)

CSP limita qué fuentes puede cargar el navegador (scripts, estilos, frames y más). Reduce el impacto de XSS, pero una política estricta puede romper Analytics, incrustaciones y plugins.

Empieza con `Content-Security-Policy-Report-Only` mientras ajustas la política. Guía completa: [Política de seguridad de contenido (CSP)](https://wpsecurityninja.com/es/docs/security-fixes/politica-seguridad-contenido-csp/).

Ejemplo de política solo de informe que permite scripts del mismo origen:

```apache
#BEGIN WP Security Ninja - Only allow browsers to load.js files from this website
	# Use Content-Security-Policy-Report-Only to test settings before using Content-Security-Policy.
	<IfModule mod_headers.c>
	Header set Content-Security-Policy-Report-Only: "script-src 'self'"
	</IfModule>
#END WP Security Ninja - Only allow browsers to load.js files from this website
```

Nginx:

```nginx
add_header Content-Security-Policy-Report-Only "script-src 'self'";
```

Security Ninja ya no establece la cabecera heredada `X-XSS-Protection`. Los navegadores modernos confían en defensas XSS integradas y CSP.

## X-Frame-Options

Bloquea o limita incrustar tus páginas en iframes (defensa contra clickjacking).

**Advertencia:** Algunas vistas previas del personalizador de temas se rompen con esta cabecera.

```php
header( 'X-Frame-Options: SAMEORIGIN' );
```

Apache:

```apache
#BEGIN WP Security Ninja - Prevent page-framing and click-jacking
	<IfModule mod_headers.c>
	Header always append X-Frame-Options SAMEORIGIN
	</IfModule>
#END WP Security Ninja - Prevent page-framing and click-jacking
```

Los valores permitidos incluyen `DENY`, `SAMEORIGIN` y (heredado) `ALLOW-FROM`. Ten cuidado si tu propio sitio usa iframes.

Nginx:

```nginx
add_header X-Frame-Options "SAMEORIGIN";
```

## X-Content-Type-Options

`X-Content-Type-Options: nosniff` reduce ataques de MIME sniffing en los que un navegador trata una subida que no es script como contenido ejecutable.

## Referrer-Policy

Controla cuántos datos de referrer envía el navegador en navegación y cargas cross-origin.

Security Ninja usa por defecto `strict-origin-when-cross-origin` en instalaciones nuevas y el asistente de configuración:

* Las peticiones same-origin siguen recibiendo la URL completa.
* Las peticiones HTTPS cross-origin reciben solo el origen.
* De HTTPS a HTTP no se envía nada.

Valores más estrictos como `same-origin` o `no-referrer` pueden romper incrustaciones como Google Maps o YouTube. Si las incrustaciones fallan tras activar cabeceras, comprueba Referrer-Policy primero. Los sitios existentes conservan su valor guardado.

```php
header( 'Referrer-Policy: strict-origin-when-cross-origin' );
```

Apache:

```apache
#BEGIN WP Security Ninja - Set Referrer-Policy
	<IfModule mod_headers.c>
	Header set Referrer-Policy "strict-origin-when-cross-origin"
	</IfModule>
#END WP Security Ninja - Set Referrer-Policy
```

Nginx:

```nginx
add_header Referrer-Policy "strict-origin-when-cross-origin";
```

Si las incrustaciones de YouTube muestran Error 153, consulta [Error 153 en incrustaciones de YouTube](https://wpsecurityninja.com/es/docs/errors-and-debugging/solucionar-error-153-embeds-youtube/) (documentación en inglés).

## Permissions-Policy

Permissions-Policy (antes Feature-Policy) controla funciones del navegador como cámara, micrófono y geolocalización. La sintaxis difiere de la cabecera Feature-Policy antigua, así que revisa configuraciones anteriores.

Ejemplo:

```php
header( 'Permissions-Policy: geolocation=(self "https://example.com"), microphone=()' );
```

Apache:

```apache
#BEGIN WP Security Ninja - Set Permissions-Policy
	<IfModule mod_headers.c>
	Header set Permissions-Policy "geolocation=(self \"https://example.com\"), microphone=() "
	</IfModule>
#END WP Security Ninja - Set Permissions-Policy
```

Nginx:

```nginx
add_header Permissions-Policy "geolocation=(self \"https://example.com\"), microphone=()";
```

Referencia: [MDN Permissions-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy).

## Usar Security Ninja

Activa y ajusta cabeceras en **Security Ninja → Correcciones**, o empieza desde el [asistente de instalación](https://wpsecurityninja.com/es/docs/installation-and-usage/asistente-de-instalacion/). Activa una cabecera cada vez y verifica que el front-end y la administración sigan funcionando.
