Cada vez que tu sitio WordPress establece una cookie (ya sea para sesiones de inicio de sesión, carritos de compra, analítica o preferencias de consentimiento), esa cookie puede llevar un conjunto de flags de seguridad. Estos flags le indican al navegador cómo manejar la cookie: cuándo enviarla, quién puede leerla y a través de qué conexiones puede viajar. Configurarlos mal no rompe nada visible, pero abre la puerta a ataques que la mayoría de propietarios de sitios no detectan hasta que es demasiado tarde.
El flag Secure: cookies solo por HTTPS
Una cookie con el flag Secure solo se transmitirá a través de conexiones HTTPS. El navegador simplemente se niega a incluirla en cualquier petición HTTP sin cifrar.
Set-Cookie: session_id=abc123; Secure¿Por qué importa esto? Imagina a un visitante accediendo a tu sitio desde el Wi-Fi de una cafetería. Si por casualidad carga una página por HTTP en claro (quizá a través de un marcador antiguo o un redireccionamiento mal configurado), sus cookies viajarían normalmente en texto plano por la red. Cualquiera que esté espiando ese tráfico Wi-Fi podría capturar la cookie de sesión y suplantar al usuario. Con el flag Secure, el navegador retiene la cookie por completo en ese escenario.
Dado que tu sitio WordPress debería estar funcionando sobre HTTPS de todos modos (y debería, en 2025 ya no hay excusa), establecer este flag no cuesta nada y previene una clase real de ataques.
El flag HttpOnly: protección contra XSS
El flag HttpOnly impide que JavaScript acceda a la cookie a través de document.cookie. La cookie se sigue enviando con las peticiones HTTP con normalidad, pero ningún script del lado del cliente puede leerla ni manipularla.
Set-Cookie: session_id=abc123; HttpOnlyEste flag existe específicamente para limitar el daño de los ataques de Cross-Site Scripting (XSS). Si un atacante consigue inyectar JavaScript en tu página (a través de un plugin vulnerable, un campo de comentarios o un vector XSS almacenado), una de las primeras cosas que ese script intentará es document.cookie para robar tokens de sesión. Con HttpOnly en su sitio, esa llamada no devuelve nada para las cookies protegidas.
No previene el XSS en sí. No corrige la vulnerabilidad subyacente. Pero retira el premio más valioso (las cookies de sesión) de la mesa, lo que a menudo marca la diferencia entre una molestia y una toma de control completa de la cuenta.
El flag SameSite: protección contra CSRF
El atributo SameSite controla el comportamiento de las cookies entre sitios. Determina si el navegador envía una cookie cuando una petición proviene de un dominio distinto al que la estableció.
Hay tres valores posibles:
SameSite=Strict: la cookie nunca se envía con peticiones entre sitios. Punto. Si alguien hace clic en un enlace a tu sitio desde una página externa, la cookie de sesión no se incluirá en esa primera petición. Es la configuración más restrictiva y puede causar problemas de usabilidad (los usuarios aparecen como desconectados al llegar desde enlaces externos).SameSite=Lax: la cookie se envía en navegaciones de nivel superior (al hacer clic en un enlace), pero no en peticiones embebidas como imágenes, iframes o envíos de formularios desde otros sitios. Es el valor por defecto del navegador desde Chrome 80 (2020) y ofrece un buen equilibrio entre seguridad y usabilidad.SameSite=None: la cookie se envía con todas las peticiones, independientemente del origen. Esto es necesario para casos de uso legítimos de cookies de terceros (formularios de pago embebidos, SSO, publicidad), pero siempre debe combinarse con el flagSecure, ya que los navegadores rechazanSameSite=NonesinSecure.
Set-Cookie: session_id=abc123; SameSite=LaxLa principal amenaza que aborda SameSite es Cross-Site Request Forgery (CSRF), ataques en los que un sitio malicioso engaña a tu navegador para que realice peticiones autenticadas a tu sitio WordPress sin que lo sepas.
Configuración recomendada de cookies seguras
Para cookies de autenticación y sesión, la configuración recomendada es:
Set-Cookie: session_id=abc123; Secure; HttpOnly; SameSite=Lax; Path=/Cada flag cubre un vector de ataque distinto:
- Secure: detiene la interceptación a nivel de red
- HttpOnly: detiene el robo a nivel de script (XSS)
- SameSite: detiene el abuso entre orígenes (CSRF)
Si falta alguno de ellos, queda un hueco. Funcionan como un equipo.
Seguridad de cookies de terceros y RGPD
Las cookies establecidas por servicios externos cargados en tu sitio (analítica, widgets de chat, píxeles publicitarios) están fuera de tu control directo. Sus flags de seguridad los determina el servicio que las establece. Pero deberías conocerlas. Una cookie de terceros sin Secure o con SameSite=None crea exposición en tu dominio, aunque tú no hayas establecido la cookie.
Esto es especialmente relevante para el cumplimiento del RGPD: saber qué cookies se establecen en tu sitio y cómo están configuradas forma parte de tu responsabilidad como operador del sitio.
Audita los flags de seguridad de tus cookies con InspectWP
InspectWP examina cada cookie que se establece durante la carga de una página en tu sitio WordPress y marca aquellas a las que les faltan los atributos Secure, HttpOnly o SameSite. El informe muestra cada cookie con sus flags actuales, para que puedas ver rápidamente cuáles necesitan atención, ya provengan del núcleo de WordPress, de plugins o de scripts de terceros.