当设置应用程序变量trust proxy
时,app.set
中的第二个参数是否意味着服务器信任从 127.0.0.1 或 TO 127.0.0.1 的所有请求?
例如:
app.set('trust proxy', 'loopback');
// or
app.set('trust proxy', '127.0.0.1');
然后
var sess = {
proxy: true
cookie: {
httpOnly: true,
secure: true
}
}
根据文档,允许几种类型的值作为第二个参数:
布尔
如果为 true,则客户端的 IP 地址被理解为最左侧的条目 在 X 转发的 * 标头中。
如果为 false,则应用被理解为直接面向互联网,并且 客户端的 IP 地址派生自 req.connection.remoteAddress。 这是默认设置。
IP 地址
IP 地址、子网或 IP 地址和子网数组 信任。以下列表显示了预配置的子网名称
这将适用于入站请求(即来自 127.0.0.1)。
您链接到的文档讨论的是如何在代理后面运行 Express 应用程序。当请求命中代理时,代理会将请求路由到应用,并且应用会看到代理的 IP 地址,而不是原始客户端的 IP 地址。
设置trust proxy
通过忽略代理的 IP 地址(以一种或另一种方式)来解决此问题,如文档所述。