🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo proteger tu sitio web con cabeceras de seguridad HTTP en cPanel

Actualizado el 10 de abril de 2026

¿Qué son las cabeceras de seguridad HTTP y por qué son importantes?

Cuando navegas por internet, tu navegador y el servidor web se comunican mediante un protocolo llamado HTTP. Durante esta conversación, se intercambian una serie de "etiquetas" invisibles llamadas cabeceras HTTP. Estas cabeceras contienen instrucciones sobre cómo debe comportarse el navegador al cargar tu sitio web.

Las cabeceras seguridad HTTP son un conjunto de instrucciones específicas que le dicen al navegador cómo proteger la información que se transmite entre el usuario y tu web. Son como las reglas de seguridad de un edificio: indican quién puede entrar, qué zonas están restringidas y cómo deben comportarse los visitantes.

Imagina que tu sitio web es una casa. Las cabeceras de seguridad son las cerraduras de las puertas, las alarmas y las cámaras de vigilancia. Sin ellas, tu casa está abierta para cualquiera, dejando expuestos tus datos y los de tus visitantes.

Configurar estas cabeceras en cPanel es una de las medidas más efectivas y económicas para blindar tu sitio web contra ataques comunes como la inyección de scripts, el clickjacking o el robo de sesiones. Y lo mejor: no necesitas ser un experto en programación para hacerlo.

Beneficios de implementar cabeceras de seguridad en tu sitio web

Antes de entrar en materia, vamos a ver qué ganas concretamente al configurar estas cabeceras:

  • Protección contra clickjacking: Evitas que otros sitios web incrusten tu página en marcos invisibles para engañar a tus usuarios.
  • Mitigación de ataques XSS: Bloqueas la ejecución de scripts maliciosos que intentan robar información de tus visitantes.
  • Prevención de MIME sniffing: Evitas que el navegador interprete archivos de forma incorrecta, reduciendo riesgos de descargas maliciosas.
  • Control de la política de referencias: Proteges la privacidad de tus usuarios al controlar qué información se comparte con otros sitios.
  • Mejora del SEO: Google y otros buscadores valoran positivamente los sitios web seguros, lo que puede mejorar tu posicionamiento en los resultados de búsqueda.

Requisitos previos antes de empezar

Para seguir esta guía necesitas:

  • Acceso a cPanel de tu hosting (normalmente a través de tudominio.com/cpanel o tudominio.com:2083).
  • Permisos de administrador o al menos acceso al panel de control.
  • Conocimientos básicos de navegación por cPanel (si llegaste hasta aquí, seguro que los tienes).

[INFO]: Si tu hosting utiliza Syspanel en lugar de cPanel (el puerto de acceso es el 2106), el proceso es muy similar, aunque la interfaz puede variar ligeramente. Esta guía se centra en cPanel, pero los conceptos son universales.

Método 1: Añadir cabeceras de seguridad desde el archivo .htaccess

El archivo .htaccess es el archivo de configuración más potente que tienes a tu disposición en cPanel. Es un archivo invisible que controla el comportamiento del servidor Apache en tu directorio.

Paso 1: Accede al Administrador de Archivos de cPanel

  1. Inicia sesión en tu cPanel.
  2. Busca la sección "Archivos" y haz clic en Administrador de Archivos.
  3. Selecciona la carpeta public_html (o la carpeta raíz donde se encuentra tu sitio web).
  4. Asegúrate de tener activada la opción "Mostrar archivos ocultos" (puedes activarla en el icono de Configuración, en la esquina superior derecha).

Paso 2: Localiza o crea el archivo .htaccess

Busca el archivo .htaccess en la raíz de tu sitio. Si no lo ves, puedes crearlo:

  1. Haz clic en + Archivo (o "Nuevo archivo").
  2. Nombra el archivo exactamente como .htaccess (con el punto al inicio).
  3. Haz clic en "Crear nuevo archivo" y luego en "Editar" para abrirlo.

Paso 3: Añade las cabeceras de seguridad

Ahora viene la parte importante. Copia y pega el siguiente bloque de código al final de tu archivo .htaccess:

# Cabeceras de seguridad HTTP
<IfModule mod_headers.c>
    # Protege contra clickjacking
    Header always set X-Frame-Options "SAMEORIGIN"

    # Protege contra ataques XSS
    Header always set X-XSS-Protection "1; mode=block"

    # Evita que el navegador interprete archivos de forma incorrecta
    Header always set X-Content-Type-Options "nosniff"

    # Controla la política de referencias
    Header always set Referrer-Policy "strict-origin-when-cross-origin"

    # Fuerza la conexión HTTPS
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

    # Política de seguridad de contenido (CSP)
    Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self' https:; frame-ancestors 'self'"
</IfModule>

Paso 4: Guarda los cambios y comprueba

  1. Haz clic en Guardar cambios en la esquina superior derecha.
  2. Cierra el editor.
  3. Visita tu sitio web y presiona Ctrl + Shift + I (Windows) o Cmd + Opt + I (Mac) para abrir las herramientas de desarrollador.
  4. Ve a la pestaña Red (Network) y recarga la página.
  5. Haz clic en la primera petición que aparezca (suele ser tu dominio) y busca la sección de Cabeceras de respuesta.

Deberías ver todas las cabeceras que has configurado. Si aparecen, ¡enhorabuena! Tu sitio web ya está más protegido.

[WARNING]: Antes de aplicar cambios en producción, es recomendable hacer una copia de seguridad de tu archivo .htaccess. Un error en este archivo puede hacer que tu sitio web deje de cargar.

Método 2: Usar la configuración de Apache en cPanel

Algunos proveedores de hosting que utilizan cPanel permiten añadir cabeceras personalizadas desde la interfaz gráfica, sin necesidad de tocar código. Este método es más visual y seguro para principiantes.

Paso 1: Busca la opción de configuración de Apache

En tu cPanel, busca una sección llamada "Configuración de Apache", "Apache Handlers" o "Configuración de cabeceras". El nombre exacto puede variar según tu proveedor.

Paso 2: Añade las cabeceras personalizadas

Si encuentras la opción, verás un formulario donde puedes especificar:

  • Tipo de cabecera: Normalmente elige "Personalizada" o "Custom".
  • Nombre: Por ejemplo, X-Frame-Options.
  • Valor: Por ejemplo, SAMEORIGIN.

Repite el proceso para cada cabecera que quieras añadir:

NombreValor
X-Frame-OptionsSAMEORIGIN
X-XSS-Protection1; mode=block
X-Content-Type-Optionsnosniff
Referrer-Policystrict-origin-when-cross-origin
Strict-Transport-Securitymax-age=31536000; includeSubDomains
Content-Security-Policydefault-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self' https:; frame-ancestors 'self'

Paso 3: Guarda y verifica

Guarda los cambios y verifica de la misma manera que en el método anterior.

Explicación detallada de cada cabecera

Para que entiendas qué estás haciendo (y puedas ajustarlo a tus necesidades), vamos a desglosar cada cabecera:

X-Frame-Options

Esta cabecera controla si tu sitio web puede ser mostrado dentro de un <iframe> en otro sitio. Los atacantes usan esta técnica (llamada clickjacking) para engañar a los usuarios y hacerles clic en elementos invisibles.

  • SAMEORIGIN: Permite que tu sitio se muestre en iframes solo desde el mismo dominio. Es la opción más equilibrada.
  • DENY: Bloquea completamente el uso de iframes, incluso desde tu propio dominio.

X-XSS-Protection

Activa el filtro de protección contra ataques de Cross-Site Scripting (XSS) en los navegadores modernos. Cuando el navegador detecta un intento de inyección de scripts, bloquea la página.

  • 1; mode=block: Activa el filtro y bloquea completamente la página si detecta un ataque.

X-Content-Type-Options

Evita que el navegador "adivine" el tipo de archivo que está cargando (MIME sniffing). Esto previene que archivos maliciosos se ejecuten como si fueran contenido legítimo.

  • nosniff: Instruye al navegador a usar estrictamente el tipo MIME declarado por el servidor.

Referrer-Policy

Controla cuánta información de referencia se envía cuando un usuario hace clic en un enlace de tu sitio hacia otro sitio web. Protege la privacidad de tus visitantes.

  • strict-origin-when-cross-origin: Envía la URL completa solo cuando navegas dentro del mismo sitio. Para navegación a otros sitios, solo envía el origen.

Strict-Transport-Security (HSTS)

Fuerza al navegador a usar siempre una conexión HTTPS segura, incluso si el usuario escribe http:// en la barra de direcciones.

  • max-age=31536000: Indica al navegador que recuerde esta configuración durante un año.
  • includeSubDomains: Aplica también a todos los subdominios.

[WARNING]: Si configuras HSTS y tu sitio no tiene un certificado SSL válido, los usuarios no podrán acceder a tu web. Asegúrate de tener HTTPS activo antes de aplicar esta cabecera.

Content-Security-Policy (CSP)

Esta es la cabecera más potente y compleja. Define exactamente qué recursos (scripts, estilos, imágenes, fuentes) puede cargar el navegador y desde qué orígenes. Es tu mejor defensa contra ataques XSS.

La configuración que te he dado es una buena base:

  • default-src 'self': Por defecto, solo carga recursos del mismo dominio.
  • script-src 'self' 'unsafe-inline' 'unsafe-eval': Permite scripts propios, scripts inline y la función eval() (necesaria para algunos frameworks).
  • style-src 'self' 'unsafe-inline': Permite estilos propios y estilos inline.
  • img-src 'self' data: https:: Permite imágenes propias, imágenes en base64 y desde cualquier sitio HTTPS.
  • font-src 'self' data:: Permite fuentes propias y fuentes en base64.
  • connect-src 'self' https:: Permite conexiones AJAX/fetch al mismo dominio y a cualquier sitio HTTPS.
  • frame-ancestors 'self': Controla quién puede incrustar tu sitio en iframes.

[TIP]: Si tu sitio web utiliza muchos recursos externos (como CDNs de JavaScript o Google Fonts), tendrás que ajustar la CSP para permitir esos orígenes. Empieza con una configuración estricta y ve relajándola solo cuando veas errores en la consola de tu navegador.

Cómo verificar que tus cabeceras de seguridad funcionan correctamente

No basta con configurar las cabeceras; debes verificar que se aplican correctamente. Aquí tienes varias formas de hacerlo:

Método 1: Herramientas de desarrollo del navegador

  1. Abre tu sitio web en Chrome, Firefox o Edge.
  2. Presiona F12 para abrir las herramientas de desarrollo.
  3. Ve a la pestaña Red (Network).
  4. Recarga la página (F5).
  5. Haz clic en la primera petición (normalmente es tu dominio).
  6. En el panel derecho, busca la sección Cabeceras de respuesta (Response Headers).

Verás todas las cabeceras que tu servidor está enviando. Busca las que has configurado.

Método 2: Herramientas online gratuitas

Existen herramientas web que analizan las cabeceras de tu sitio automáticamente:

  • securityheaders.com: Esta es la más popular y completa. Te da una nota de A a F según la configuración de tus cabeceras de seguridad.
  • observatory.mozilla.org: Similar a la anterior, pero gestionada por Mozilla. También te da recomendaciones personalizadas.

Simplemente introduce tu dominio y la herramienta analizará tu sitio web.

[INFO]: Estas herramientas pueden mostrar alertas si alguna cabecera no está configurada correctamente. No te preocupes si no obtienes una A perfecta a la primera; es un proceso iterativo.

Resolución de problemas comunes

Mi sitio web se ve raro después de configurar CSP

Esto es normal si tu CSP es demasiado restrictiva. Abre la consola del navegador (F12 > Consola) y verás los errores de CSP con detalles sobre qué recurso se bloqueó. Añade el origen correspondiente a tu política.

Por ejemplo, si ves un error como:

Refused to load the script 'https://cdn.example.com/jquery.js' because it violates the following Content Security Policy directive...

Deberías añadir https://cdn.example.com a tu directiva script-src.

No veo las cabeceras en mi sitio web

Posibles causas:

  • Tu hosting no usa Apache (puede usar Nginx u otro servidor). En ese caso, el archivo .htaccess no funciona.
  • El módulo mod_headers no está activado en tu servidor. Contacta con tu proveedor de hosting.
  • Hay caché en tu navegador o en tu sitio web. Prueba con una ventana de incógnito o después de limpiar la caché.

Después de modificar .htaccess, mi sitio web da error 500

Esto suele ocurrir por un error de sintaxis en el archivo. No te preocupes:

  1. Accede a tu cPanel a través del Administrador de Archivos.
  2. Busca el archivo .htaccess.
  3. Haz clic derecho y selecciona Editar (o Code Editor).
  4. Busca el error (posiblemente falta un espacio o hay una línea mal escrita).
  5. Si no puedes arreglarlo, elimina las líneas que añadiste o restaura una copia de seguridad.

[TIP]: Siempre guarda una copia de tu .htaccess original antes de hacer cambios. Puedes descargarlo a tu ordenador o hacer una copia en el servidor con el nombre .htaccess.bak.

Preguntas frecuentes (FAQ)

¿Estas cabeceras afectan al rendimiento de mi sitio web?

No, las cabeceras de seguridad son instrucciones que se envían junto con la respuesta HTTP. Añaden unos pocos bytes de información, lo que no tiene un impacto perceptible en la velocidad de carga.

¿Necesito configurar cabeceras si ya uso un plugin de seguridad (como Wordfence o Sucuri)?

No es obligatorio, pero sí recomendable. Los plugins de seguridad suelen gestionar sus propias capas de protección, pero las cabeceras HTTP añaden una capa adicional a nivel del servidor que es independiente del CMS que uses.

¿Puedo configurar estas cabeceras en WordPress sin usar cPanel?

Sí, puedes hacerlo mediante un plugin como "Really Simple SSL" o "HTTP Headers", o añadiendo código a tu archivo functions.php. Sin embargo, hacerlo desde cPanel es más eficiente porque se aplica a todo tu sitio web, no solo a WordPress.

¿Qué pasa si mi sitio web usa recursos de otros dominios (CDNs, APIs)?

Deberás ajustar tu Content-Security-Policy para permitir esos orígenes. Por ejemplo, si usas Google Fonts, añade https://fonts.googleapis.com y https://fonts.gstatic.com a tus directivas style-src y font-src.

¿Las cabeceras de seguridad pueden romper mi sitio web?

Sí, especialmente la CSP si no está bien configurada. Por eso es crucial probar en un entorno de desarrollo primero y monitorizar tu sitio después de aplicar los cambios.

¿Cada cuánto tiempo debo revisar mis

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel