0Pricing
PHP Academy · Lección

Seguridad de cookies: flags HttpOnly y Secure

Proteja las cookies con los atributos HttpOnly, Secure y SameSite.

Seguridad de cookies: flags HttpOnly y Secure es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.

El indicador HttpOnly

Cuando una cookie tiene el indicador HttpOnly, JavaScript no puede acceder a ella mediante document.cookie, lo que evita el robo de sesiones basado en XSS.

Configuración de HttpOnly y Secure

Use la forma con una matriz de opciones (PHP 7.3 o posterior) para escribir código claro y legible.

<?php
setcookie("session_id", $id, [
    "expires"  => time() + 3600,
    "path"     => "/",
    "secure"   => true,
    "httponly" => true,
    "samesite" => "Strict",
]);

El indicador Secure

Una cookie Secure solo se envía mediante HTTPS. En las conexiones HTTP, el navegador la omite, lo que evita su interceptación mediante HTTP sin cifrar.

El atributo SameSite

SameSite controla cuándo se envían las cookies con solicitudes entre sitios:

  • Strict — solo solicitudes del mismo sitio
  • Lax — solicitudes del mismo sitio y navegaciones de nivel superior
  • None — solicitudes entre sitios (requiere Secure)

SameSite y CSRF

Establecer SameSite en Strict o Lax mitiga CSRF porque la cookie de sesión no se envía con solicitudes POST falsificadas entre sitios.

Configuración de cookies de sesión en php.ini

Configure la seguridad predeterminada de las cookies de sesión durante la ejecución:

<?php
ini_set("session.cookie_httponly", "1");
ini_set("session.cookie_secure",   "1");
ini_set("session.cookie_samesite", "Lax");
session_start();

Prefijos de cookies

Los navegadores respetan los prefijos de los nombres de las cookies:

  • __Secure- — la cookie debe tener el indicador Secure
  • __Host- — debe tener Secure, Path=/ y ningún atributo Domain

Ejemplo de prefijo de cookie

Use el prefijo __Host- para vincular una cookie al host exacto.

<?php
setcookie("__Host-session", $token, [
    "secure"   => true,
    "httponly" => true,
    "samesite" => "Strict",
    "path"     => "/",
]);

Revisión de indicadores en DevTools

En DevTools del navegador → Application → Cookies, compruebe lo siguiente: HttpOnly activado, Secure activado y SameSite con el valor Strict o Lax.

Sin HttpOnly

Un script malicioso inyectado mediante XSS puede ejecutar document.cookie, leer el ID de sesión y enviarlo a un atacante, que tomará el control de la cuenta.

Sin Secure

En un sitio con HTTP y HTTPS combinados, la cookie de sesión se envía en texto plano mediante HTTP. Un intruso que escuche la red puede robarla.

Resumen

Establezca siempre HttpOnly y Secure en las cookies de sesión y autenticación. Añada SameSite=Strict o Lax. Use la forma con una matriz de opciones de setcookie().

Comprobación rápida

¿Qué indicador impide que JavaScript lea una cookie?

Preguntas frecuentes

¿La lección «Seguridad de cookies: flags HttpOnly y Secure» es gratis?

Sí — el texto completo de «Seguridad de cookies: flags HttpOnly y Secure» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Seguridad de cookies: flags HttpOnly y Secure»?

Proteja las cookies con los atributos HttpOnly, Secure y SameSite. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar PHP Academy?

No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Seguridad de cookies: flags HttpOnly y Secure»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de PHP Academy?

Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Inicio y uso de sesiones
  2. Prácticas recomendadas de seguridad de sesiones
  3. Configuración y lectura de cookies
  4. Seguridad de cookies: flags HttpOnly y Secure
← Volver a PHP Academy