Nie wiem nic o kryptografii. Zastanawiam się, jaki jest sekret sesji.
Widzę taki kod:
app.use(express.session({
store: mongoStore({
url: app.set('db-uri')
}),
secret: 'topsecret'
}));
Jaki jest sekret i czy powinienem to zmienić?
Tak, powinieneś to zmienić. Sekret sesji w connect jest po prostu używany do obliczania skrótu . Bez łańcucha dostęp do sesji zostałby w zasadzie „odmówiony”. Spójrz na dokumentację connect , która powinna trochę pomóc.
topsecret
. Sekret powinien być losowym ciągiem znaków. Idealnie byłoby również zmieniać go okresowo w przypadku wykrycia. Wymaga to jednak obsługi tajnej rotacji, więc nie możesz natychmiast unieważniać istniejących sesji. Oznacza to, że dwa sekrety sesji należy uważać za ważne jednocześnie. O ile mi wiadomo, Express nie obsługuje obecnie rotacji sekretów.res.cookie('name', 'value', {signed: true})
Sekret służy do haszowania sesji z HMAC:
https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L256
Sesja jest następnie chroniona przed przejęciem sesji poprzez sprawdzenie odcisku palca pod hashem z sekretem:
https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L281-L287
źródło
tajny klucz zasadniczo używany do szyfrowania danych w sesji
źródło