我正在寻找一种方法,或使用任何类型的代理服务器查看我的网站来检测客户端的方法.我正在使用PHP/Apache ......最好的方法是什么?需要检测任何代理服务器,而不是特别是其中一个.
编辑
我对匿名代理更感兴趣...因为通过寻找可以很容易地检测到正常的代理HTTP_X_FORWARDED_FOR.
另一个编辑
试试这个:
1)转到http://kproxy.com(或任何其他免费匿名代理网站)
2)访问:http://www.worldofwarcraft.com
3)他们能够以某种方式阻止,因为页面错误输出"加载样式表时出错:加载XSLT样式表时出现网络错误:http://kproxy.com/new-hp/layout/layout.xsl "
我想做类似的事情以防止代理.
小智 23
在PHP中使用以下2个解决方案.//方法1 =快速但不能与匿名代理一起使用
$proxy_headers = array(
'HTTP_VIA',
'HTTP_X_FORWARDED_FOR',
'HTTP_FORWARDED_FOR',
'HTTP_X_FORWARDED',
'HTTP_FORWARDED',
'HTTP_CLIENT_IP',
'HTTP_FORWARDED_FOR_IP',
'VIA',
'X_FORWARDED_FOR',
'FORWARDED_FOR',
'X_FORWARDED',
'FORWARDED',
'CLIENT_IP',
'FORWARDED_FOR_IP',
'HTTP_PROXY_CONNECTION'
);
foreach($proxy_headers as $x){
if (isset($_SERVER[$x])) die("You are using a proxy!");
}
Run Code Online (Sandbox Code Playgroud)
//方法2 = portscan返回到使用的普通代理端口的原始IP.
$ports = array(8080,80,81,1080,6588,8000,3128,553,554,4480);
foreach($ports as $port) {
if (@fsockopen($_SERVER['REMOTE_ADDR'], $port, $errno, $errstr, 30)) {
die("You are using a proxy!");
}
}
Run Code Online (Sandbox Code Playgroud)
Tom*_*nto 17
你无法检测到它,除非它们传递特殊的标题,明确地提到它像X-Forwarded-For或其他东西.
据我所知,你必须使用黑名单.使用putty portforwarding,VPN或其他更复杂方法的用户无法检测到,因为他们的行为与普通用户完全相同.
Metasploit使用许多不同的技术来强制客户端系统进行直接连接(Flash,Java,QuickTime,MS Office,自定义DNS服务器中的漏洞/错误).
或者,如果您无法让客户端的浏览器启动metasploit,您可以尝试查找开放代理(端口扫描)和已知的Tor退出节点.
但请不要认为代理是邪恶的,需要被阻止 - 有很多合法的代理,有些用户必须使用它们.
如果您遇到垃圾邮件或其他滥用流量的问题,那么阻止代理将无济于事.您应该寻找解决问题核心(垃圾邮件过滤器,IDS)的特定解决方案,而不是假设匿名=有罪.
| 归档时间: |
|
| 查看次数: |
47643 次 |
| 最近记录: |