问题标签 [x-forwarded-for]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
148 浏览

ssl - Traefik、EKS、TLS 终止、X-Forwarded-For

在 EKS 集群上部署 Traefik。需要使用 ALB 终止 TLS 会话并传递 X-Forwarded-For 标头。使用官方 helm chart 运行 Traefik v2.4.8(traefik/traefik来自https://helm.traefik.io/traefik

已经存在 AWS 托管证书arn:aws:acm:us-east-1:xxx:certificate/xxx。我可以手动设置 DNS CNAME 以指向 ALB。无需自动化。

Traefik helm chart 需要哪些覆盖,以及如何配置 Ingress 和/或 IngressRoute 以终止 AWS ALB 上的 TLS 会话并填充 X-Forwarded-For 标头?

0 投票
0 回答
21 浏览

amazon-web-services - 如何只向客户端发送 API 网关地址而不是 API 网关 + EC2 IP?

我使用 Amazon API Gateway 作为代理来访问客户端服务器。当我发出请求时,它当前正在传递源 IP + API 网关 IP 地址。有没有办法只传递 API 网关 IP 地址并隐藏源 IP?

例子:"ip":"local_ip,aws_gateway_ip"

0 投票
1 回答
223 浏览

java - ForwardedHeaderFilter 不再支持 IPv6

升级 Spring Boot 依赖项后,Spring Boot 应用程序仅适用于 ipv4,但会引发 ipv6 错误。该应用程序部署在谷歌云运行服务上。当前版本:

错误:

我能够找到类似的问题,但没有找到任何解决方案。 https://github.com/spring-projects/spring-framework/issues/26748

代码中引发错误的行 https://github.com/spring-projects/spring-framework/blob/6c68419073b43fb29114a3af4e402c729084ed84/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java #L363

0 投票
0 回答
44 浏览

proxy - 在 Squid Proxy 上使用自定义证书解密 Web 流量然后添加标头并在发送前重新加密的方法

我想知道是否有办法使用我自己的自定义解密证书在 squid 代理上解密客户端 Web 流量。解密后,我想添加一些自定义标头,例如 X-Forwarded-For、X-Authenticated-User 等,并使用相同的证书进行加密,然后继续将加密的 Web 流量发送到预期的 Web 服务器。

我知道我们在最新的 squid 中有 peek 'n' slice 方法,但我不确定我们是否有办法使用自定义解密证书并添加标题后解密。

0 投票
0 回答
59 浏览

amazon-eks - 缺少 Appmesh 网关和 NLB 的 X-Forwarded-For 标头

我正在使用通过 EKS 上的掌舵图部署的 AppMesh 控制器和网关。请求进入此路径:客户端 -> NLB -> AppMesh Gateway (Envoy) -> 虚拟服务 -> Flask App 容器

但是烧瓶上的请求中缺少X-Forwarded-For标头,并且远程地址返回 127.0.0.1

我为尝试解决问题而采取的步骤

  1. 在 NLB 上启用客户端 IP 保留

    https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#client-ip-preservation

  2. 在appmesh-gateway图表中将service.externalTrafficPolicy 设置为 Local

service.externalTrafficPolicy 设置为 Local 时,它保留客户端源 IP 集群

但问题仍然存在,有什么我可能会错过的想法吗?

0 投票
0 回答
67 浏览

apache - 如何读取 X-Forwarded-For 以确定 apache httpd 中的内部流量

这个要求看起来很简单(但实际上并不简单),我需要在 apache httpd 配置中确定请求是从内部网络还是外部网络发起的。这样我们就可以设置自定义请求头并为外部用户传递给后端服务器,并让请求头从客户端传递给内部用户的后端服务器。我们正在使用 remoteip_module

流程是客户端 -> 负载均衡器 -> apache httpd/反向代理 -> 应用服务器

我尝试了所有我能找到的方法,但是有些 LB 如何在 X-Forwarded-For 请求标头中设置 IP 无法被 httpd 配置文件读取

这是我写入 httpd 配置文件的配置

假设,如果用户代理(比如说邮递员)设置 X-Forwarded-For 标头,那么 httpd 配置可以读取该标头,否则 httpd 无法读取 LB 设置的标头值.....不确定是否有任何现有配置在 httpd 中不允许它读取 LB 设置的标头。注意:我们可以在显示 clientIP 的访问日志中打印 %a 变量

问题:读取 X-Forwarded-for 并在 if 指令中使用它的语法或变量是什么

0 投票
0 回答
76 浏览

apache - 从 Apache 到 Nginx 的 Imperva WAF X-Forwarded-For HTTP Header 的某个指南需要解释

我从 Imperva 收到了有关 X-Forwarded-For HTTP 标头的特定指南。

但是,没有提到 Nginx,而是提到了 Apache。

我想知道是否有人可以帮助我,请理解我如何将这里写的关于 Apache 的所有内容部署在 Nginx Web 服务器上。

*PS 我不是开发人员,但我需要确保他们这样做,他们不明白如何

这是来自 Imperva 的答案:

Cloud WAF 已经为常见的应用程序和开发框架开发了解决方案,可用于恢复原始客户端 IP。

如果您没有找到与您的环境匹配的扩展,您可以轻松地自己提取原始客户端 IP。

Cloud WAF 将原始客户端 IP 地址插入到两个 HTTP 标头中,以便服务器可以检索它进行处理。第一个是标准 HTTP 标头“X-Forwarded-For”,第二个是 Imperva Cloud WAF 标头“Incap-Client-IP

例如,将 Apache 配置为使用 X-Forwarded-For 代替(或结合使用)普通的 HTTP 客户端标头非常简单。打开您的配置文件(通常在 /etc/httpd/conf/ 中)并找到描述日志格式的部分。然后将以下内容添加到您要修改的日志格式中,或者创建一个包含此内容的新格式以提取 X-Forwarded-For 值:

而已。如果您不关心代理 IP 地址,您可以简单地将通用日志格式中的传统 %h 替换为新值,也可以将其添加为附加标头。

有谁知道如何将他们所说的关于 Apache 的内容转换为 Nginx?

帮助表示赞赏..谢谢!

PS 提到的 http 标头用于获取 access.log 文件而不是 Imperva 的真实客户端 IP,因为它充当“代理”,因此当前访问日志文件在某个用户请求网站时仅看到 Imperva 的 IP,这提供“匿名”访问权限,并且很难跟踪不良行为。

0 投票
1 回答
52 浏览

nginx - 如何显示导致 NGINX 错误页面的请求中发送的标头?

location我在我的 Nginx块中为错误页面设置了一个自定义位置(带有最小的 HTML 文件) 。函数`location是:

客户端应该发出一个 X-forwarded-for 标头,其中 IP 地址作为冒号右侧的值。但是如何在该错误页面上显示错误状态代码和标题?我在一个虚拟盒子上运行一个测试环境。

0 投票
0 回答
110 浏览

amazon-web-services - 从 AWS ALB 的 X-Forwarded-For 标头中识别客户端 IP,同时避免欺骗

根据AWS关于 ALB 和X-Forwarded-For标头的文档,客户端 IP 位于最左侧(因此代理将紧随其后):

最左边的地址是第一次发出请求的客户端 IP 地址。

但是,如果用户提供了自己的X-Fowarded-For标头,则客户端 IP 将附加到提供的标头中:

负载均衡器将客户端 IP 地址附加到现有标头并将标头传递给您的服务器

如果我正确理解文档,X-Forwarded-For标题可能类似于: spoofed,clientIp,proxy,proxy

这意味着实际的客户端 IP 介于用户提供的值和代理之间。我们无法提取最左边的值,因为它可能被欺骗(甚至包含逗号分隔的值),并且我们无法提取最右边的值,因为它可能是代理。

是否有可靠的方法来识别实际的客户端 IP?

0 投票
0 回答
30 浏览

server - 在 Blazor 服务器中读取转发的标头

我有一个在 VM(带有 Apache2 的 Ubuntu)上运行的 Blazor 服务器应用程序,在用户和应用程序之间还有一个反向代理来处理身份验证。代理向应用程序发送带有用户信息的附加标头。我需要使用这些标头才能在组件中显示有关用户的信息。我已经在 Program.cs 中设置了转发的标题,但我正在努力阅读它们。问题是它们出现在初始化组件时并出现在浏览器中,但是当组件进一步加载时,这些标题消失了。这是我第一次进行任何形式的身份验证,所以我肯定在这里做错了。

我目前用来读取标题的代码:

谁能在这里指出我正确的方向?