Я ничего не знаю о криптографии. Интересно, в чем секрет сеанса.
Я вижу такой код:
app.use(express.session({
store: mongoStore({
url: app.set('db-uri')
}),
secret: 'topsecret'
}));
В чем секрет и нужно ли его менять?
Да, вы должны это изменить. Секрет сеанса в connect просто используется для вычисления хэша . Без строки доступ к сеансу был бы "запрещен". Взгляните на документы подключения , это должно немного помочь.
topsecret
. Секрет должен быть случайной строкой символов. В идеале вы также должны периодически менять его, если он был обнаружен. Однако для этого требуется поддержка ротации секретов, чтобы сразу не аннулировать существующие сеансы. То есть два секрета сеанса должны считаться действительными одновременно. Насколько мне известно, в настоящее время Express не поддерживает смену секретов.res.cookie('name', 'value', {signed: true})
Секрет используется для хеширования сеанса с HMAC:
https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L256
Затем сеанс защищен от перехвата сеанса путем проверки отпечатка пальца на хэш с секретом:
https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L281-L287
источник
секретный ключ в основном используется для шифрования данных в сеансе
источник