Consultoría tecnológica a tu alcance
Ver todos nuestros servicios

Llámanos: (051) 904 652 161
Lunes - Viernes | 8 a 5 pm

Correo para información
ventas@vrsolutionstec.com

Av. Arica 1271
Lima - Breña

Añadir y configurar cabeceras de seguridad HTTP en WordPress

Tabla de contenidos

Encabezados de seguridad

SSL – Secure Sockets Layer, que es la tecnología estándar para asegurar las conexiones a Internet, además de proteger cualquier información confidencial enviada entre los dos sistemas y evitar que los delincuentes lean y modifiquen los datos que usted tiene. Ambos sistemas pueden ser de servidor y cliente (como sitios de compras y navegadores) o de servidor a servidor (como aplicaciones que contienen información de identificación personal o datos de nómina).

SSL es una capa que mejora la seguridad de su sitio web. Sin embargo, también le recomendamos que utilice algunos encabezados de seguridad importantes en su sitio web para optimizar la seguridad. Para implementarlos, agregue los encabezados que se enumeran a continuación al archivo .htaccess de tu página web. 

El siguiente ejemplo aplicó las cabeceras para poder adicionar seguridad a su sitio web que son las recomendadas, sin embargo se puede adicionar otras cabeceras, aplicar otros parámetros de lo cuál se requiere conocimientos avanzados, aparte también empleo el plugin Really Simple SSL en lo cuál puedes obtener mas información sobre los encabezados de seguridad.

				
					# BEGIN Really Simple SSL Redirect
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header set X-XSS-Protection "1; mode=block"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin"
header always set Permissions-Policy: geolocation=(self);midi=(none);notifications=(self);push=(self);sync-xhr=(self);microphone=(none);camera=(none);magnetometer=(none);gyroscope=(none);speaker=(none);vibrate=(none);fullscreen=(self);payment=(none)
header always set Content-Security-Policy: upgrade-insecure-requests;
# END Really Simple SSL Redirect
				
			
Hosts no disponible para el encabezados de seguridad .htaccess

Hay una gran diversidad de configuraciones en donde los encabezados de seguridad no se pueden realizar en el archivo .htaccess de tu sitio web. Esto incluye hosts que no admiten esto en sus archivos .htaccess u otros servidores que no son Apache, por ejemplo NGINX (hay encabezados que si puede aplicar si es que tiene el acceso) o configuraciones de equilibrio de carga.

Por lo general en la mayoría de host que son servidores Apache se puede efectuar accediendo a su cpanel en la ruta \public_html\.htaccess siempre es recomendable efectuar una copia de seguridad del archivo ante cualquier eventualidad en su sitio web.

Encabezado HSTS

HTTP Strict Transport Security ( HSTS ) soportado para principales servidores web como Apache, NGNIX y la mayoría de navegadores, con el fin de minimizar el riesgo de que un hacker pueda interrumpir nuestras comunicaciones y conseguir cookies y datos similares intercambiados durante la sesión.

Si este encabezado se declara en su dominio, al momento de navegar se efectuará todas las solicitudes en su sitio web por medio de https a partir de ese momento. Dado el caso que un hacker con malas intenciones redireccione al usuario a un dominio fake o falso.com, en ese momento el encabezado aplicada una serie de políticas que recordará usar SSL debido al HSTS, por lo que solicita el sitio seguro para poder continuar.

Para aplicar este encabezado emplear lo siguiente:

				
					Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

				
			
Encabezado X-powered-by

En lo particular este encabezado brinda información sobre la tecnología que dispone nuestro servidor web. Con valores estándares tales como ASP.NET o versión del PHP o del Ubuntu, esta es otra información que se puede eliminar de la visualización pública y reducir el porcentaje de un ataque informático.

Para aplicar en php se debe reiniciar para ello efectuar lo siguiente:

				
					sudo nano /etc/php8/fpm/php.ini

				
			

En el archivo ini.php Identificar la siguiente línea y efectuar el siguiente cambio:

				
					#Identificar la siguiente línea
expose_php = On
#Cambiar el valor on por off
expose_php = Off

				
			

Por último guardar los cambios en el archivo ini.php y reinicie su php empleando lo siguiente:

				
					sudo service php8-fpm restart
				
			
Encabezado X-XSS-Protection 

Lo que va a permitir este encabezado es evitar que las páginas carguen si se identifica un ataque de cross-site scripting ( XSS ) que se encuentra integrado en la mayoría de exploradores , se recomienda emplear en páginas web que se emplean el cms de WordPress.

Las configuraciones válidas para el encabezado son 0, que deshabilita la protección, 1 que habilita la protección . Al emplear «1; mode=blockque» le dice al navegador que bloquee la respuesta si detecta un ataque, en lugar de desinfectar el script.

Para aplicar en servidor Apache emplear lo siguiente:

				
					Header always set X-Xss-Protection "1; mode=block"

				
			

Para aplicar en servidor NginX emplear lo siguiente:

				
					add_header X-Xss-Protection "1; mode=block" always;
				
			
Encabezado X-Frame-Options

También denominado  encabezado XFO, su función principal de este encabezado es que evite la carga del sitio en un iframe. Esto evitará el secuestro de clic (clickjacking), cómo otro escenario evitar el mal empleo de emplear su contenido para que se pueda autentificar y exhibir sus credenciales en un login, es un registro, etc.

Al emplear este encabezado, debe considerar no podrá emplear el iframe de su sitio web en otras webs.

Los valores que se permite emplear tales como DENY lo que indica que su sitio no se puede enmarcar (no iframe), SAMEORIGIN lo que le permite enmarcar su propio sitio o ALLOW-FROM https://vrsolutionstec.com/le permite especificar sitios que autoriza para que le enmarca su propio sitio.

Para aplicar en servidor Apache emplear lo siguiente:

				
					Header always set X-Frame-Options "SAMEORIGIN"
				
			

Para aplicar en servidor NginX emplear lo siguiente:

				
					add_header X-Frame-Options "SAMEORIGIN" always;
				
			
Encabezado X-Content-Type-Options

Este encabezado exigirá al navegador que emplee a no «adivinar» qué tipo de datos se transmiten. Por ejemplo si al transferir un archivo con extensión «.txt», el navegador debe obtener la misma extensión del origen en el destino, al no emplear este encabezado el navegador está expuesto a ejecutar archivos maliciosos como scripts pensando el usuario que está descargando un archivo inofensivo.

Para aplicar en servidor Apache emplear lo siguiente:

				
					Header always set X-Content-Type-Options "nosniff"
				
			

Para aplicar en servidor NginX emplear lo siguiente:

				
					add_header X-Content-Type-Options "nosniff" always;
				
			
Encabezado Referrer-Policy

Este es uno de los nuevos encabezados que se tiene que emplear,  permite que un sitio controle la cantidad de información que incluye el navegador con navegaciones fuera de un documento y debe ser establecida por todos los sitios. A su vez permitirá que un sitio controle el valor del encabezado de referencia en enlaces fuera de sus páginas.

Para aplicar en servidor Apache emplear lo siguiente:

				
					Header always set Referrer-Policy "strict-origin"
				
			
Encabezado Permissions Policy

Este también es un nuevo encabezado, define un mecanismo que permite a los desarrolladores habilitar y deshabilitar selectivamente el uso de varias funciones y API del navegador.

Las funciones controladas por políticas se identifican mediante tokens, que son cadenas de caracteres que se utilizan en las directivas de políticas.

Cada función controlada por políticas tiene una lista de permitidos predeterminada , que define si esa función está disponible en documentos en contextos de navegación de nivel superior y cómo se hereda el acceso a esa función en contextos de navegación secundarios.

Para aplicar en servidor Apache emplear lo siguiente:

				
					header always set Permissions-Policy: geolocation=(self);midi=(none);notifications=(self);push=(self);sync-xhr=(self);microphone=(none);camera=(none);magnetometer=(none);gyroscope=(none);speaker=(none);vibrate=(none);fullscreen=(self);payment=(none)
				
			
Encabezado Content Security Policy

La función de este encabezado es es una medida eficaz para proteger su sitio de ataques XSS. Al incluir en la lista blanca las fuentes de contenido aprobado, puede evitar que el navegador cargue activos maliciosos. Analice esta política con más detalle. Puede registrarse de manera gratuita en Report URI para recopilar informes sobre problemas en su sitio en tiempo real.

Un encabezado CSP le permite definir fuentes aprobadas para contenido en su sitio que el navegador puede cargar. Al especificar solo aquellas fuentes de las que desea que el navegador cargue contenido, puede proteger a sus visitantes de una amplia gama de problemas. Este encabezado tiene una amplia gama de directivas de lo cual debe profundizar la cual se acople a su página web.

Para aplicar en servidor Apache emplear lo siguiente:

				
					header always set Content-Security-Policy: upgrade-insecure-requests;
				
			
Validar encabezados HTTPS

Por último después de haber visto diversos encabezados, ahora cómo validamos si está haciendo efecto la declaración de dichos encabezados. Para ello existen diversas páginas donde puede validar, sin embargo para esta ocasión emplearemos Security Headers que ingresando nuestro dominio nos dará un breve informe con los resultados de los encabezados que estás empleando, también lo que no estás empleando y los encabezados nuevos que surja.

Lo mejor de está página te brinda una calificación de cómo está actualmente tus encabezados, lo cuál se puede calificar por los siguientes indicadores.

Calificación Descripción
A+
Calificación increíble
A
Calificación buena
B
Bien
C
Se puede mejorar la seguridad
D
Su sitio podría estar en riesgo
E
Debe aplicar medidas
F
Aplicar seguridad inmediatamente

Para este ejemplo emplearemos el dominio https://vrsolutionstec.com y le damos en Scan y obtenernos la calificación y los siguientes resultados:

Encabezados Https

Cómo se podrá observar para este ejemplo se saco la calificación alta A+ aplicando los encabezados que hemos vistos [Strict-Transport-Security, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy y Content-Security-Policy] y están aplicados en este sitio web.

En la parte inferior también nos brinda otras informaciones acerca del sitio web, mas información los encabezados empleados y sus respectivos valores y los encabezados nuevos que también pueden adicionar, para ello debe leer la documentación.

En VR Solutions Tec siempre estaremos brindando las recomendaciones para mejorar tu sitio web en el aspecto de seguridad para que tus clientes que interactúen se sientan seguros.

Compartir artículo en redes sociales:
Acerca del autor
Picture of Victor Ramirez

Victor Ramirez

Ing. De Sistemas, consultor TI

Cuento con posgrados en España, MBA de Big Data y Master de Business Intelligence. Me gusta compartir conocimientos y experiencias.

Puede que esto te interese...
Artículos Relacionados
Comentarios

Deja una respuesta

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