Nodejs secure cook и HTTPOnly за прокси-сервером - PullRequest
0 голосов
/ 22 мая 2018

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

Я читал и предположил, что мне нужно включить 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
    }
}));

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

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

Вам также необходимо установить для параметра 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
    }
}));

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

прокси

Доверять обратному прокси при настройкебезопасные куки (через заголовок «X-Forwarded-Proto»).

Значение по умолчанию не определено.

true Будет использоваться заголовок «X-Forwarded-Proto».

0 голосов
/ 22 мая 2018

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...