gpt4 book ai didi

node.js - Nodejs 安全 Cook 和 HTTPOnly 在代理服务器后面

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:42 24 4
gpt4 key购买 nike

在 Nodejs 中,在代理服务器后面具有安全 cookie 和 HTTPOnly。HttpOnly 标志和带有 Secure 标志的 Cookie 如何将其 header 发送到代理服务器?

我一直在阅读并假设我需要在我的代理服务器上启用 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
}
}));

最佳答案

我遇到了类似的问题并在 this tutorial 的帮助下解决了它.

您还需要在 session 配置中将 proxy 选项设置为 true。我建议使用环境变量表达式process.env.NODE_ENV ===“生产”来执行此操作。

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
}
}));

来自express-session文档:

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.

关于node.js - Nodejs 安全 Cook 和 HTTPOnly 在代理服务器后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50459477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com