jef*_*n24 19 php proxy http-headers
嗨,我正在创建一个游戏,我希望能够判断用户是否正在使用代理.如果它们比它基本上在他们的帐户上放置一个标志.我可以让它做旗帜,但我不确定如何判断用户是否正在使用代理.我已经看到你可以使用标题,但我不确定要查找哪些内容以及如何检查用户是否"有"标题(除了正常的http_referrer以外还有什么).
任何帮助是极大的赞赏.
编辑
if ( $_SERVER['HTTP_X_FORWARDED_FOR']
|| $_SERVER['HTTP_X_FORWARDED']
|| $_SERVER['HTTP_FORWARDED_FOR']
|| $_SERVER['HTTP_CLIENT_IP']
|| $_SERVER['HTTP_VIA']
|| in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554))
|| @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 30))
{
exit('Proxy detected');
}
Run Code Online (Sandbox Code Playgroud)
所以这个代码大多数都可以工作,当用户是代理时,它会快速退出.但是当它们不是它需要永远加载(大约10秒).反正有没有使用这个脚本,但让它更快?
编辑2
将fsockopen上的超时从30更改为1,它的工作速度更快,并且仍在工作.感谢大家的建议:)
在搜索Google之后,php detect http proxies我想出了以下内容:
http://forums.digitalpoint.com/showthread.php?t=58964
http://forums.digitalpoint.com/showthread.php?t=365467
http://www.roscripts.com/PHP_Proxy_Detector-75.html
......还有很多其他有趣的热门歌曲.
编辑:
AFAIK无法绝对确定地或安全地检测HTTP代理:
匿名者服务不会在他们的请求中添加正确的标头 - 事实上他们会删除其中的一些标头.您需要保留最流行的匿名者服务及其IP地址块的列表,并以这种方式检测它们.您可以使用一些在线列表,但它们远非完整 - 特别是如果您认为大多数大型机构(ISP,公司,大学等)为其用户提供代理服务器.有些人甚至要求他们的用户使用它们.
许多HTTP代理都配置为只需转发请求而不更改标头.
VPN安装与HTTP代理具有相同的效果 - 即允许HTTP请求来自与Web broswer所在的计算机不同的IP - 而不是一个.
任何SSH服务器都可以被其用户用作SOCKS代理,这实际上是不可检测的,因为它实际上不是HTTP代理.
有许多合法的HTTP代理不能公开访问.例如,有一些HTTP代理产品安装在家庭网络中,并为整个网络提供家长控制和可疑内容(色情,网络钓鱼站点等)过滤.
你看到了什么样的滥用,检测HTTP代理可能有用吗?
| 归档时间: |
|
| 查看次数: |
23216 次 |
| 最近记录: |