Я начинаю изучать NodeJS и пишу страницу, где я хочу войти и в сеансе на сервере, хранить информацию о вошедшем в систему пользователе.
Данные сеанса также будут доступны для WebSocket. С этим у меня нет проблем (с входом в систему и передачей данных в WebSocket), но меня удивляет одна вещь.
var express = require('express');
var session = require('express-session');
var app = express();
app.use(session({
secret: 'xxxxxxxxxxxxxxx',
name: 'sessionNazwa',
resave: false,
saveUninitialized: true,
cookie: {
maxAge: 24 * 60 * 60 * 1000,
httpOnly: true
}
}));
После входа на сайт появляется файл cookie «sessionName» с назначенным номером сеанса. После входа на сайт, я вижу, что пользователь вошел в систему.
Дело в том, что когда я копирую номер сеанса из файла cookie и заменяю его номером сеанса в другом браузере, все данные для входа в систему передаются в другой браузер. Это значит, сессия ходов.
Тот факт, что сеанс перемещается из этого файла cookie, меня не удивляет, но я удивлен, что модуль 'express-session' не обнаруживает копирование номера сеанса файла cookie и не меняет идентификатор. Из того, что я помню, в 2 PHP, когда номер сеанса был изменен, сервер сгенерировал новый идентификатор.
Почему в модуле 'express-session', если номер сеанса изменяется, он не генерируется и не заменяется новым? Как защитить себя дополнительно?