BobtheMagicMoose
He intentado configurar una cookie usando document.cookie = "tagname = test; secure"
pero esto no establece la bandera segura. ¿Lo estoy configurando mal? ¿Solo puedes configurarlo desde una respuesta del servidor? También me pregunto eso, porque he tenido dificultades para encontrar un ejemplo de su uso, ¿probablemente no se usa comúnmente?
¡Gracias un montón!
sfy
TL:DR
document.cookie = "tagname = test;secure";
Tienes que usar HTTPS para establecer un atributo seguro
El nombre normal (o formal, tal vez) es atributo. Ya que la bandera se refiere a otras cosas.
Más información
Atributos de las cookies:
Seguro: la cookie se enviará solo en transmisión HTTPS.
HttpOnly: no permita que los scripts accedan a las cookies. Puede configurar tanto Secure como HttpOnly.
Dominio: especifique los hosts a los que se enviará la cookie.
Ruta: cree ámbitos, la cookie se enviará solo si la ruta coincide.
Caduca: indica la duración máxima de la cookie.
Más detalles y usos prácticos. Controlar Prueba_de_atributos_de_cookies_(OTG-SESS-002)
ACTUALIZACIONES
Los siguientes contenidos vencen el 2 de junio de 2016.
Banderas de cookies
Las banderas de cookies son prefijos. Por el momento, se describen en el Borrador RFC como una actualización de la RFC6265
Estas banderas se utilizan con el atributo ‘seguro’.
__Secure-
El guión es una parte del prefijo. Esta bandera le dice al navegador que la cookie solo debe incluirse en ‘https’.
__Host-
Una galleta con esta bandera
no debe tener el atributo ‘dominio’, solo se enviará al host que lo configuró.
Debe tener un atributo de ‘ruta’, que se establece en “https://stackoverflow.com/”, porque se enviará al host en cada solicitud del host.
-
¡Gracias! El problema era que estaba intentando configurar el atributo seguro sin estar en HTTPS.
– Bob el Alce Mágico
15 mayo 2016 a las 16:23
-
Probé tu
document.cookie = "tagname = test;secure";
perodocument.cookie
retornotagname=test
, https, probado en las versiones actuales de Chromium y Firefox. UPD, oh, encontrésecure
bandera en el visor de cookies dentro de Devtools.– Vitaly Zdanévich
18 de julio de 2017 a las 8:42
-
MDN menciona específicamente que está prohibido. desarrollador.mozilla.org/en-US/docs/Web/HTTP/…
– mpoisot
21 de septiembre de 2019 a las 21:18
-
@sfy Tengo que configurar seguro como verdadero, entonces, ¿qué cambio se requiere? Este es mi código js -> document.cookie =
cookie_consent=${value}; expires=${expireDate} Secure; path=/
; ??– Priyen Mehta
6 de diciembre de 2022 a las 7:08
-
@PriyenMehta Debe verificar si se está comunicando con su servidor con HTTPS, y su servidor admite HTTPS.
– sfy
7 de diciembre de 2022 a las 7:26
porque la bandera se llama secure
no seguridad:
document.cookie = "tagname = test;secure";
-
Lo siento, eso fue un error tipográfico en mi publicación original. Desde entonces lo he corregido. Cuando uso la consola Chrome, cuando escribo:
document.cookie = "tagname = test;secure";
no se agregan cookies, pero cuando escribodocument.cookie = "tagname = test";
se agrega. ¿Es esta una limitación para ingresar cosas en la consola de Chrome? Gracias por la respuesta.– Bob el Alce Mágico
15 de mayo de 2016 a las 7:24
-
@BobtheMagicMoose ¿Está intentando esto en un sitio web HTTPS? A mí me funciona bien, pero tienes que hacerlo en un sitio web HTTPS.
– rebane2001
6 de enero de 2020 a las 8:55
Este paquete de cookies es fácil de usar @ https://www.npmjs.com/package/js-cookie
//to set cookie use
Cookies.set('name', 'value', { expires: 7, path: '' });
//to read the cookie, use
Cookies.get('name'); // => 'value'
//to delete cookie this
Cookies.remove('name')
//to set secure cookie this
Cookies.set('name', 'value', { secure: true });
-
el 7 en el caduca significa 7 dias
– Chukwuemeka Maduekwe
8 de noviembre de 2020 a las 20:23
Aunque el servidor respondió con Mayúsculas, y separó con espacio:
set-cookie: x = y; Secure
El javascript del cliente necesita poner en minúsculas el secure
y eliminar el espacio en blanco después ;
al igual que:
document.cookie = `x=y;secure`;
De lo contrario, no tendrá ningún efecto.