No sé nada de criptografía. Me pregunto cuál es el secreto de la sesión.
Veo un código como este:
app.use(express.session({
store: mongoStore({
url: app.set('db-uri')
}),
secret: 'topsecret'
}));
¿Cuál es el secreto y debería cambiarlo?
topsecret
. El secreto debe ser una cadena de caracteres aleatoria. Idealmente, también lo cambiaría periódicamente en caso de que se haya descubierto. Sin embargo, esto requiere soporte para la rotación secreta para que no invalide inmediatamente las sesiones existentes. Es decir, dos secretos de sesión deben considerarse válidos simultáneamente. Que yo sepa, Express no es compatible con la rotación de secretos en este momento.res.cookie('name', 'value', {signed: true})
El secreto se usa para hash la sesión con HMAC:
https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L256
Luego, la sesión se protege contra el secuestro de la sesión al comparar la huella digital con el hash con el secreto:
https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L281-L287
fuente
clave secreta que se utiliza básicamente para cifrar datos en la sesión
fuente