Una cookie de sesión es una cookie HTTP establecida sin un atributo Expires o Max-Age, por lo que el navegador la elimina cuando finaliza la sesión actual. Las cookies permiten a un servidor mantener el estado, como un inicio de sesión, a través de HTTP, que es mayormente sin estado. En el scraping, un jar de cookies almacena estas cookies para que cada solicitud posterior en la misma tarea las envíe de vuelta.

El navegador decide cuándo finaliza la sesión actual. Algunos navegadores restauran sesiones al reiniciar, lo que puede mantener las cookies de sesión vivas indefinidamente. Las cookies que establecen Expires o Max-Age son cookies permanentes, y cuando ambos atributos están establecidos, Max-Age tiene prioridad.

Atributos Clave de las Cookies

  • Sin Expires o Max-Age: Esto es lo que convierte a una cookie en una cookie de sesión. El RFC 6265 dice que el agente de usuario debe eliminar estas cookies de su almacén de cookies cuando finaliza la sesión.
  • Segura: Limita la cookie a canales seguros, como conexiones TLS.
  • HttpOnly: Limita la cookie a solicitudes HTTP, por lo que los scripts del navegador no pueden leerla.

Jars de Cookies en el Scraping

  • Qué es un jar de cookies: Un almacén del lado del cliente que guarda cookies de respuestas y las devuelve en solicitudes posteriores. El módulo http.cookiejar de Python proporciona uno, y expira automáticamente las cookies almacenadas.
  • Sesiones en código: Un objeto de sesión requests persiste cookies a través de todas las solicitudes realizadas desde él y reutiliza conexiones a través de agrupamiento de conexiones.
  • Guardando en disco: MozillaCookieJar guarda cookies en el formato cookies.txt, que también utiliza curl. Las cookies de sesión no se guardan a menos que pases ignore_discard=True.
  • Con proxies: Empareja un jar de cookies con una sesión persistente cuando una tarea de múltiples pasos necesita las mismas cookies y la misma IP de salida de principio a fin.

IDs de Sesión y Secuestro de Sesión

  • Qué lleva la cookie: Generalmente un ID de sesión que el servidor asigna cuando se crea la sesión. OWASP recomienda las cookies como la forma de intercambiarlo.
  • Por qué es importante: Después del inicio de sesión, el ID de sesión es temporalmente equivalente al método de inicio de sesión más fuerte que utiliza el sitio.
  • Secuestro: Si un atacante obtiene el ID de sesión, puede impersonar completamente al usuario. OWASP llama a esto secuestro de sesión, o sidejacking.
  • Fortalecimiento: El valor debe ser sin sentido y tener al menos 64 bits de entropía. OWASP también dice que las cookies de sesión deben establecer SameSite=Strict o SameSite=Lax.
  • No confíes en cerrar el navegador: OWASP desaconseja confiar en el cierre del navegador para finalizar una sesión iniciada.

Cookies de Sesión y Reglas de Consentimiento de la UE

Las reglas de la UE (Artículo 5(3) de la Directiva de ePrivacidad) requieren consentimiento para las cookies a menos que sean estrictamente necesarias para un servicio que el usuario haya solicitado explícitamente. La Opinión 04/2012 del Grupo de Trabajo del Artículo 29 dice que las cookies de autenticación son generalmente cookies de sesión y están exentas durante la duración de una sesión. Las cookies de entrada de usuario basadas en sesión, como un carrito de compras, están exentas sobre la misma base. Las cookies de inicio de sesión persistentes que mantienen a un usuario conectado a través de sesiones de navegador no están exentas.

Términos Relacionados