Estoy tratando de averiguar qué son realmente las "cookies firmadas". No hay mucho en la red, y si intento esto:
app.use(express.cookieParser('A secret'));
Pero aún así ... Las cookies siguen siendo 100% normales en el navegador, y realmente no sé qué es "firmado" aquí (tenía la esperanza de "ver" alguna rareza en el cliente, algo así como los datos cifrados con ¿"Un secreto" como la sal?)
La documentación dice ( https://github.com/expressjs/cookie-parser ):
Analizar el encabezado de la cookie y completar
req.cookies
con un objeto codificado por los nombres de las cookies. Opcionalmente, puede habilitar la compatibilidad con cookies firmadas pasando unasecret
cadena, que se asignareq.secret
para que pueda ser utilizada por otro middleware.
¿Alguien sabe?
Merc.
express.cookieParser()
?res.cookie('somethingElseAgainAndAgain', 'signed? Maybe' );
pero ... ¡Dudo que lo esté firmando! El middleware cookieParser () está listo para analizar las cookies firmadas, pero definitivamente no estoy configurando correctamente ... ¿tengo que firmarlas manualmente ...?(res.cookie(name, value, { signed: true }))
. Reportando el "detalle" faltante de la documentación ...If it does not match, then it will give an error.
No es un error . Solo la request.signedCookie para esa clave no está configurada . Así que más como ignoradoSí, como menciona emostar, es simplemente para asegurarse de que un valor no haya sido manipulado. Se coloca en un objeto diferente (req.signedCookies) para diferenciar entre los dos, lo que permite al desarrollador mostrar su intención. Si se almacenan en req.cookies junto con los demás, alguien podría simplemente crear una cookie sin firmar con el mismo nombre, anulando todo su propósito.
fuente
He estado buscando bastante una buena respuesta a esto ... Y mirando el código fuente de
cookie-signature
, que es utilizado porcookie-parser
para firmar las cookies firmadas, me ha dado una mejor comprensión de qué es una cookie firmada.val
es, por supuesto, el valor de la cookie, ysecret
es la cadena que agrega como opción acookie-parser
https://github.com/visionmedia/node-cookie-signature/blob/master/index.js#L16
fuente
Usé la versión de cookie-parser 1.4.4.
Podría agregar cookies firmadas y cookies firmadas encriptadas en el navegador. Si trato de editar la cookie firmada usando editThisCookie (complemento de Chrome), el analizador de cookies detecta el cambio externo y luego establece como valor falso.
Encabezado de respuesta en el navegador, aparece como
Obtener cookie firmada
https://gist.github.com/dineshbalaji/607d166f0240f932a5cb02099b0ece4c
fuente