2010-10-25 15 views
14

¿Hay una cookie segura en una conexión HTTPS?¿Hay una cookie segura en una conexión HTTPS?

+0

No, no automáticamente. Usando https://github.com/delight-im/PHP-Cookie o las funciones nativas análogas, con '$ cookie-> setSecureOnly (true);' será * seguro contra el secuestro * sobre HTTP no seguro, con ' $ cookie-> setHttpOnly (true); 'será * seguro contra el secuestro * a través de vulnerabilidades XSS en su página, y así sucesivamente. Entonces, para juzgar si una cookie es "segura", primero debe definir el modelo de amenaza. El robo de cookies sobre HTTP simple o XSS es lo que generalmente debería interesarle. – caw

Respuesta

17

Se transmite desde y hacia el servidor cifrado, por lo que es tan seguro como TLS.

También puede marcar una cookie como destinada solo para la comunicación cliente-servidor, y bloquear el acceso desde el lado del cliente Javascript, agregando el indicador "HttpOnly" en el encabezado de respuesta "Set-cookie".

edición — y como sugiere @Bruno, también se puede usar la bandera "seguro" (en la misma cabecera) para decirle al navegador que la cookie sólo debe ser enviado de vuelta al servidor de solicitudes HTTPS. Como @ D.W. señala en un comentario más reciente, que puede ser bastante importante, ya que casi seguro no desea que sus cookies importantes seguras se transmitan probablemente en interacciones no seguras (por ejemplo, antes de iniciar sesión desde una parte pública no segura de un sitio). Si todos las interacciones con un dominio de cookie en particular son HTTPS, entonces eso podría no ser necesario, pero es una cosa tan simple que no hay ninguna razón para no hacerlo.

edición — actualización, mucho tiempo después: usar la bandera secure :)

+3

También vale la pena usar la bandera de cookie segura. – Bruno

+0

@Bruno oh sí, por supuesto, extenderé la respuesta – Pointy

+2

Esta respuesta es errónea. La cookie solo es "tan segura como TLS" si se establece el indicador de seguridad. De lo contrario, un intruso pasivo puede aprender el valor de la cookie (porque se enviará en forma clara sobre las sesiones no encriptadas si no está establecido el indicador de seguridad). –

6

En la conexión, sí. Pero todavía está almacenado en la máquina del cliente sin cifrar.

6

Las cookies se envían dentro de la cabecera HTTP. Por lo tanto, son tan seguros como la conexión HTTPS que depende de una gran cantidad de parámetros SSL/TLS como la intensidad del cifrado o la longitud de la clave pública.

Tenga en cuenta que a menos que configure el indicador Secure para su Cookie, la Cookie se puede transmitir a través de una conexión HTTP no segura. Hay ataques man-in-the-middle que usan cookies inseguras para robar información de la sesión. Por lo tanto, a menos que tenga una buena razón para no hacerlo, siempre configure el indicador de Seguridad para Cookies cuando desee que solo se transmitan a través de HTTPS.

Cuestiones relacionadas