web-dev-qa-db-fra.com

Quelle est l'option "secrète" de la session?

Je ne connais rien à la cryptographie. Je me demande quel est le secret de la session.

Je vois du code comme celui-ci:

app.use(express.session({
  store: mongoStore({
    url: app.set('db-uri')
  }),
  secret: 'topsecret'
}));

Quel est le secret et dois-je le changer?

99
Harry

Oui, vous devez le changer. Un secret de session dans connect est simplement utilisé pour calculer le hachage . Sans la chaîne, l'accès à la session serait essentiellement "refusé". Jetez un oeil à la connect docs , cela devrait aider un peu.

75
Hacknightly

Le secret est utilisé pour hacher la session avec HMAC:

https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L256

La session est ensuite protégée contre le piratage de session en vérifiant l'empreinte digitale par rapport au hachage avec le secret:

https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L281-L287

20
substack