是否可以检测是否通过代理服务器发出传入请求?如果Web应用程序通过IP地址"禁止"用户,他们可以通过使用代理服务器来绕过这一点.这只是阻止这些请求的一个原因.怎么能实现这一目标?
恕我直言,没有100%可靠的方法来实现这一点,但任何以下标头的存在都强烈表明请求是从代理服务器路由的:
via: forwarded: x-forwarded-for: client-ip:
您还可以在客户端域名中查找代理或pxy.
如果正确设置代理服务器以避免检测代理服务器,您将无法分辨.
大多数代理服务器都会像其他人提到的那样提供头文件,但代理服务器上不会出现那些完全隐藏用户的内容.
您需要采用多种检测方法,例如cookie,代理头检测以及可能的IP启发式方法来检测这种情况.有关此情况的一些信息,请查看http://www.osix.net/modules/article/?id=765.还要考虑使用代理黑名单 - 它们由许多组织发布.
但是,没有什么是100%肯定的.您可以采用上述策略来避免大多数简单的情况,但最终它只是一系列形成TCP/IP事务的数据包,并且TCP/IP协议不是根据当今关于安全性,身份验证等的想法开发的. .
请记住,许多公司出于各种原因部署公司范围的代理,如果您只是作为一般规则阻止代理,则必然会限制您的受众,这可能并不总是可取的.但是,这些代理通常会使用适当的标头声明自己 - 您最终可能会阻止合法用户,而不是擅长隐藏自己的用户.
-亚当