Как создать безопасный сеанс cookie при использовании паспорта - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь понять, как использовать cookie-сессию вместе с паспортом. Вот что я понимаю до сих пор:

  • при входе пользователя в систему - значение user_id добавляется в сеанс через шаг пользователя serializeUser
  • cookie-session создает сеанс и cookie session.sig, содержащие идентификатор_пользователя, который затем передается клиенту
  • клиент затем отправляет сеансовые куки при каждом вызове API
  • passport считывает данные сеанса из файла cookie с помощью шага deserializeUser

Проблема, с которой я столкнулся, заключается в том, что дата истечения срока действия cookie не совпадает с этими двумя значениями (session и session.sig). Это означает, что для данного user_id сгенерированный сеанс и session.sig всегда будут одинаковыми - и вся эта информация передается клиенту.

Теперь, скажем, кто-то находит способ скопировать значения этих двух файлов cookie, теперь он может просто прикрепить эти значения к вызову API с любой расширенной фиктивной датой истечения срока действия. И он пройдет паспортную проверку! поскольку user_id действительно хэшируется в эти файлы cookie.

Не означает ли это, что после создания cookie-файла сеанса он всегда будет оставаться действительным даже после истечения срока действия самого cookie-файла?

Это ожидается? или я что-то упустил?

...