我在Kubernetes中运行一个ASP.NET核心API,它位于发送X-Forwarded-For
、X-Forwarded-Proto
和X-Forwarded-Host
头的反向代理后面。
我发现我需要使用UseForwardedHeaders()
来接受来自代理的值,因此我编写了以下代码:
var forwardedOptions = new ForwardedHeadersOptions()
{
ForwardedHeaders = Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.All
};
forwardedOptions.KnownNetworks.Add(new IPNetwork(IPAddress.Parse(configuration["network:address"]), int.Parse(configuration["network:cidrMask"])));
app.UseForwardedHeaders(forwardedOptions);
我在Kubernetes中运行我的API和反向代理,并且API只在集群中可见。因此,我不担心集群网络中的某个人欺骗报头。我想做的是自动检测集群的内部子网,并将其添加到KnownNetworks
列表中。这可能吗?如果可以,怎么做?
1条答案
按热度按时间jgwigjjp1#
我 创建 了 一 种 方法 , 用于 计算 范围 的 起始 值 和 每个 活动 接口 的 CIDR 子网 掩码 :
中 的 每 一 个
示例 :
然后 , 我 将 选项 代码 更改 为 如下 所 示 :
格式