如何检测 Node.js 中是否存在 HTTP 代理?
How to detect the presence of a HTTP proxy in Node.js?
我希望能够检测到 Node.js 上的计算机(例如 Fiddler 或 Charles)何时打开此类程序/代理。
程序是否会更改您的本地 IP 地址,而我只需要检测它?如果是这样的话,我不确定我应该使用什么合适的包。谢谢。
谢谢
如果是 Charles Proxy 或 Fiddler,它们会在本地机器上 运行 并且拦截是透明的 - 因此 IP 既不会更改,也不会添加 HTTP header 来表明它们是当前的。由于这些工具用于安全测试,因此宣布它们的存在是有害的,因为被测软件可以检测到它们并表现出不同的行为。
像 Squid 或负载平衡器设置这样的普通 Web 代理应该添加以下 HTTP headers 之一:
Via
例如 Via: 1.1 vegur
X-Forwarded-For
例如 X-Forwarded-For: 192.168.1.10
因此对于像 Charles 或 Fiddler 这样的本地 MITM 代理,您将无法检测到它们的存在,但常规代理应该通过一些 HTTP header.
我希望能够检测到 Node.js 上的计算机(例如 Fiddler 或 Charles)何时打开此类程序/代理。
程序是否会更改您的本地 IP 地址,而我只需要检测它?如果是这样的话,我不确定我应该使用什么合适的包。谢谢。
谢谢
如果是 Charles Proxy 或 Fiddler,它们会在本地机器上 运行 并且拦截是透明的 - 因此 IP 既不会更改,也不会添加 HTTP header 来表明它们是当前的。由于这些工具用于安全测试,因此宣布它们的存在是有害的,因为被测软件可以检测到它们并表现出不同的行为。
像 Squid 或负载平衡器设置这样的普通 Web 代理应该添加以下 HTTP headers 之一:
Via
例如Via: 1.1 vegur
X-Forwarded-For
例如X-Forwarded-For: 192.168.1.10
因此对于像 Charles 或 Fiddler 这样的本地 MITM 代理,您将无法检测到它们的存在,但常规代理应该通过一些 HTTP header.