Seguridad de Cookies: Guia Completa

Las cookies son el mecanismo principal de gestion de sesiones en la web. Almacenan tokens de autenticacion, preferencias del usuario y datos de seguimiento. Sin los flags de seguridad adecuados, las cookies se convierten en un vector de ataque critico que permite el robo de sesiones, ataques CSRF y exposicion de datos sensibles.

Estadisticas en tiempo real

58%

Tasa de aprobacion

228

Sitios analizados

69/100

Puntuacion media

Datos basados en escaneos reales de EscanearVulnerabilidades

Que es

Las cookies HTTP son pequenos fragmentos de datos que el servidor envia al navegador del usuario, que los almacena y reenvian con cada peticion posterior al mismo dominio. Las cookies de sesion contienen un identificador unico que vincula al usuario con su sesion en el servidor. Los flags de seguridad de cookies son atributos que controlan como el navegador maneja estas cookies: HttpOnly impide el acceso desde JavaScript, Secure restringe el envio a conexiones HTTPS, SameSite controla el envio en peticiones cross-origin, Domain limita a que dominios se envian, Path restringe a que rutas aplican, y Max-Age/Expires define su vigencia.

Por que importa

Sin el flag HttpOnly, un ataque XSS puede robar la cookie de sesion del usuario mediante document.cookie en JavaScript, permitiendo al atacante suplantar su identidad (session hijacking). Sin el flag Secure, la cookie se envia en conexiones HTTP no cifradas, donde puede ser interceptada por cualquier atacante en la red. Sin SameSite, la cookie se incluye en peticiones desde sitios de terceros, habilitando ataques CSRF (Cross-Site Request Forgery) donde un sitio malicioso ejecuta acciones en nombre del usuario autenticado. El robo de sesion es uno de los ataques mas comunes y peligrosos, y la correcta configuracion de cookies es la defensa principal.

Problemas comunes

  • Flag HttpOnly ausente: permite que scripts JavaScript accedan a las cookies de sesion, facilitando el robo de sesiones mediante ataques XSS.

  • Flag Secure ausente: la cookie se transmite en conexiones HTTP sin cifrar, vulnerable a intercepcion en redes WiFi publicas.

  • SameSite no configurado o en modo "None": permite el envio de cookies en peticiones cross-site, habilitando ataques CSRF.

  • Cookies de sesion sin fecha de expiracion: las cookies persistentes indefinidas aumentan la ventana de oportunidad para ataques.

  • Domain demasiado amplio: configurar la cookie para .tudominio.com permite que subdominios comprometidos accedan a la sesion principal.

  • Datos sensibles almacenados directamente en cookies: almacenar informacion personal o tokens en la cookie en lugar de en el servidor.

Como solucionarlo

Configura todas las cookies de sesion con los flags HttpOnly, Secure y SameSite=Lax (o Strict donde sea posible). Establece una fecha de expiracion razonable para las cookies de sesion. Utiliza nombres de cookies con el prefijo __Host- para mayor seguridad. Implementa renovacion de tokens de sesion tras la autenticacion para prevenir session fixation. Revisa las cookies que establecen tus dependencias y frameworks para asegurar que tambien cumplen estas practicas.

javascript Ejemplo de configuracion
# Node.js / Express
app.use(session({
  name: '__Host-session',
  secret: process.env.SESSION_SECRET,
  cookie: {
    httpOnly: true,
    secure: true,
    sameSite: 'lax',
    maxAge: 24 * 60 * 60 * 1000, // 24 horas
    path: '/',
  },
  resave: false,
  saveUninitialized: false,
}));

# PHP - php.ini o .htaccess
session.cookie_httponly = On
session.cookie_secure = On
session.cookie_samesite = Lax
session.cookie_lifetime = 86400
session.use_strict_mode = On

# Nginx - Modificar cookies del upstream
proxy_cookie_flags ~ httponly secure samesite=lax;

Comprueba la seguridad de tu sitio web

Nuestro escaner analiza automaticamente la configuracion de seguridad de cookies junto con otros 9 checks de seguridad. Recibe un informe completo con recomendaciones en minutos.

Escanea tu sitio web gratis

Guias relacionadas