¿Cómo funciona la marca de cookies "segura"?

101

Sé que una cookie con securebandera no se enviará a través de una conexión no cifrada. Me pregunto cómo funciona esto en profundidad.

¿Quién es el responsable de determinar si la cookie se enviará o no?

ted
fuente

Respuestas:

91

El cliente establece esto solo para conexiones cifradas y esto se define en RFC 6265 :

El atributo Seguro limita el alcance de la cookie a los canales "seguros" (donde el agente de usuario define "seguro"). Cuando una cookie tiene el atributo Seguro, el agente de usuario incluirá la cookie en una solicitud HTTP solo si la solicitud se transmite a través de un canal seguro (generalmente HTTP sobre Seguridad de la capa de transporte (TLS) [RFC2818]).

Aunque aparentemente es útil para proteger las cookies de los atacantes de red activos, el atributo Seguro protege solo la confidencialidad de la cookie. Un atacante de red activo puede sobrescribir las cookies seguras de un canal inseguro, interrumpiendo su integridad (consulte la Sección 8.6 para obtener más detalles).

Cratylus
fuente
4
en caso de que el lado del cliente aún no tenga cookies y se deban enviar desde el lado del servidor (por ejemplo, iniciando sesión), ¿será el lado del servidor el que decida incluir cookies en respuesta?
ted
2
Servidor establece inicialmente a través de las cookies "encabezados Set-Cookie"
Ivan
49

Solo otra palabra sobre el tema:

Omitir secureporque su sitio web example.comes completamente https no es suficiente.

Si su usuario está llegando explícitamente http://example.com, será redirigido a, https://example.compero ya es demasiado tarde; la primera solicitud contenía la cookie.

Alain Tiemblo
fuente
6
Sé que esto es antiguo, pero la precarga de HSTS ayuda a esta situación al evitar que este problema ocurra con frecuencia. Todavía no es una solución al 100%, pero es solo otra cosa a considerar si realmente desea evitar las cookies seguras.
Mr. MonoChrome
5
@ Mr.MonoChrome ¿Por qué querría evitar las cookies seguras?
MEMark
@ Mr.MonoChrome, aunque algunos navegadores de especificaciones más antiguos o más bajos, creo, ni siquiera son compatibles con HSTS
oldboy
1
Buen punto. Para las aplicaciones .NET, es mejor hacer la redirección en IIS (o web.config) en lugar de mediante programación (por ejemplo, globals.asax)
piris
Entonces, si no redirigiera de http a https y solo sirviera en https, ¿no lo necesitaría secure?
frena el