【发布时间】:2011-10-14 09:22:52
【问题描述】:
我想使用 PHP 代码检查传入的 HTTP 请求是否来自透明代理、误导代理、SOCKS 代理。我用 PHP 开发了一个应用程序。
我已经从$_SERVER Request 中检查了客户端是否使用代理。我帮助为此提供了链接
【问题讨论】:
-
hakre,我知道“检测用户是否在代理后面”和透明代理。这对我没用。所以它不是重复的。谢谢
我想使用 PHP 代码检查传入的 HTTP 请求是否来自透明代理、误导代理、SOCKS 代理。我用 PHP 开发了一个应用程序。
我已经从$_SERVER Request 中检查了客户端是否使用代理。我帮助为此提供了链接
【问题讨论】:
根据定义,没有办法区分真正的透明代理,因此无法阻止它们。理论上,您可以尝试识别远程系统的 TCP/IP 堆栈,并尝试将其与用户代理中声明的操作系统相匹配。然而,这种方法容易出错、不切实际、极其复杂,并且如果两者都运行在同一个操作系统上,自然无法区分“真正的”网络浏览器和代理。
如果您将误导性代理定义为更改内容的代理,则可以使用 JavaScript 检查内容。例如,如果代理将<img src="http://evil.com/ad">添加到所有请求中,请检查document.querySelector('img[src="http://evil.com/ad"]').length > 0。
【讨论】:
$_SESSION。然后你就可以检测到变化了。