如何使用 PHP 代码检测匿名、误导性代理请求?
我想检查传入的 HTTP 请求是否来自透明代理、误导代理、使用 PHP 代码的 SOCKS 代理。我用 PHP 开发了一个应用程序。
我已经从 $_SERVER
请求中检查了客户端是否使用代理。我帮助吹掉了此链接
I want check whether an incoming HTTP request is coming from a Transparent proxy, Misleading proxy, SOCKS Proxy using PHP code.I had developed one application in PHP.
I had checked the client using proxy or not from $_SERVER
Request.I helped blow link for this
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据定义,无法区分真正的透明代理,因此无法阻止它们。理论上,您可以尝试识别远程系统的 TCP/IP 堆栈,并尝试将其与用户代理中声明的操作系统相匹配。然而,这种方法容易出错、不切实际、极其复杂,并且如果两者运行在同一操作系统上,自然无法区分“真正的”网络浏览器和代理。
如果您将误导性代理定义为更改内容的代理,则可以使用 JavaScript 检查内容。例如,如果代理将
添加到所有请求,请检查
document.querySelector('img[src=" http://evil.com/ad"]').length > 0 。
By definition, there is no way to distinguish a truly transparent proxy, so there is no way to block them. You could, in theory, try to identify the TCP/IP stack of the remote system and try to match that to the OS declared in the user-agent. However, this approach is erorr-prone, impractical, extremely complicated, and naturally cannot distinguish a "real" webbrowser from a proxy if both run on the same OS.
If you define a misleading proxy as one that alters the content, you can check the content with JavaScript. For example, if the proxy adds
<img src="http://evil.com/ad">
to all requests, checkdocument.querySelector('img[src="http://evil.com/ad"]').length > 0
.