Atributos de seguridad de las cookies (Cookie security attributes)
Los atributos de seguridad de las cookies son las marcas que el servidor pone junto a una cookie para limitar cómo la guarda y cuándo la envía el navegador. En seguridad de aplicaciones los que importan son Secure, HttpOnly y SameSite, más el ámbito que fijan Domain y Path y los prefijos de nombre __Host- y __Secure-, que son los que hacen ese ámbito exigible.
Cada atributo responde a una pregunta distinta. Secure decide si la cookie puede viajar sobre HTTP en claro. HttpOnly decide si el script puede leerla, que es lo que limita el secuestro de sesión después de un fallo de cross-site scripting. SameSite decide si la cookie se adjunta a peticiones iniciadas por otros sitios, que es la parte de la respuesta al cross-site request forgery que pone el navegador. Domain y Path deciden qué máquinas y qué rutas llegan siquiera a ver la cookie.
Los fallos que vemos rara vez son una marca ausente en la cookie de sesión, porque hoy los frameworks ya las ponen. Están en el ámbito. Una cookie emitida para el dominio padre la pueden leer y escribir todos los subdominios, incluidos el sitio de marketing sobre una plataforma compartida y el que nadie ha parcheado, así que una vulnerabilidad en cualquier punto del parque se convierte en una vulnerabilidad de la aplicación. El prefijo __Host- existe precisamente para hacer eso imposible, y casi nunca se usa.
Lo que anotamos en un informe es la cabecera Set-Cookie completa de todas las cookies que transportan estado, no solo la de sesión, junto con la máquina que la emitió. Los tokens antifalsificación, los de recordar sesión y las cookies de suplantación son los que aparecen mal configurados. Es un punto fijo en el pentesting de aplicaciones web, donde se revisa cada cabecera Set-Cookie.