Nodejs secure cook и HTTPOnly за прокси-сервером

В Nodejs с безопасным cookie и HTTPOnly за прокси-сервером. Как HttpOnly flag и Cookie с флагом Secure отправляют заголовки на прокси-сервер?

Я читал и предполагаю, что мне нужно включить X-Forward-Proto на моем прокси-сервере?

process.env.NODE_ENV = 'production';

if (app.get('env') === 'production') {
  app.set('trust proxy', 1) // trust first proxy
}

app.use(session({
    store: new RedisStore({host: '127.0.0.1', port: 6379, client: client, ttl:  3600}),
    key: 'sid',
    secret: 'abcde',
    resave: false,
    saveUninitialized: false,
//    proxy: true,
    cookie: {
        secure: true,
        httpOnly: true,
        maxAge: 3600000
    }
}));
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
1 198
2

Ответы 2

Флаг HttpOnly рассматривается только HTTP-клиентом. Прокси-сервер HTTP просто передаст флаг и проигнорирует его.

Пока клиент сам подключается к серверу (или прокси, если это обратный прокси) через HTTPS, он будет работать.

Значит, отсутствует параметр, не отображаются в файлах cookie Google Chrome. Это нормально для тех, кто находится за прокси-сервером? HTTP-прокси-сервер, похоже, не передает флаг.

James Lei 22.05.2018 06:21

Обычные прокси-серверы не должны этого делать. Может быть, ваш. Я бы посоветовал заглянуть в ваш прокси, если это так.

Evert 22.05.2018 06:24

У меня была аналогичная проблема и решил ее с помощью этот учебник.

Вам также необходимо установить для параметра proxy значение true в конфигурации сеанса. Я бы предложил сделать это с помощью выражения переменной окружения process.env.NODE_ENV === "production".

app.use(session({
    store: new RedisStore({host: '127.0.0.1', port: 6379, client: client, ttl:  3600}),
    key: 'sid',
    secret: 'abcde',
    resave: false,
    saveUninitialized: false,
    proxy: process.env.NODE_ENV === "production",
    cookie: {
        secure: process.env.NODE_ENV === "production",
        httpOnly: true,
        maxAge: 3600000
    }
}));

Из документов экспресс-сессия:

proxy

Trust the reverse proxy when setting secure cookies (via the "X-Forwarded-Proto" header).

The default value is undefined.

true The "X-Forwarded-Proto" header will be used.

Другие вопросы по теме