gpt4 book ai didi

iis - IIS 在 x-Forwarded-For header 中设置的端口号与最初的目标端口不同

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:51 31 4
gpt4 key购买 nike

我在我的开发箱上设置了一个 IIS 反向代理来测试我的应用程序如何处理通过 SSL 卸载的请求。
我的应用程序需要重新创建原始请求,附加一些查询字符串参数,然后将其发送回客户端。默认情况下,IIS/ARR/URL-rewrite 似乎没有附加行业标准的“X-Forwarded-Host”和“X-Forwarded-Proto” header 。相反,我能找到的最接近的东西是“X-ARR-SSL”和“X-Forwarded-For”。
很高兴从“X-Forwarded-For”中解析出原来的IP,但是查看端口时,似乎没有任何意义。我的 SSL 反向代理设置为监听默认 SSL 端口 (443),但 header 中指定的端口是 52585。
我的问题是有谁知道如何找出原始目标端口是什么要求是?我希望我的应用程序能够稳健地处理由 IIS 代理的请求,但看起来我将不得不根据请求是 HTTP 还是 HTTPS 来猜测端口。

最佳答案

X-Forwarded-For与服务器无关。这是客户端的IP地址。它附加到请求 header ,以便 Web 服务器可以识别真正的客户端而不是反向代理。您提到的其他 header 是事实上的标准,现在已被 RFC 7239 取代。 .根据 RFC,端口号将包含在 Forwarded header 的主机部分中,如下所示:

Forwarded: for=192.0.2.60;proto=http;host=example.com:888;by=203.0.113.43

我怀疑 一些 反向代理将端口号添加为 X-Forwarded-Host header 的一部分,在冒号之后,就像它在 Host header ,但由于它不是定义的标准 header ,您只需使用反向代理尝试查看即可。

另请参阅:What is a full specification of X-Forwarded-Proto HTTP header?

关于iis - IIS 在 x-Forwarded-For header 中设置的端口号与最初的目标端口不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29155841/

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