代理检测(Proxy detection)

2019-11-05 12:41发布

代理操纵头,所以我决定用js和PHP来检查页面地址,如果他们是平等=>无代理。 但我认为,我的实现是不正确的。

    <script src="http://code.jquery.com/jquery-1.5.1.min.js"></script>
<div id="JS" style="display:none">
<script>



</script>
</div>
<div id="noJS">Enable JS</div>
<script>
$(document).ready(function() {
$("#noJS").hide();
$("#JS").show().addClass("hasJS");  
if($("#JS").hasClass("hasJS")) {

    if($("#addrphp").text() == location.href) {
        alert("no proxy");
    }
    else {
        alert("proxy")

    }

}   
});
</script>
<?php
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
?>
<div id="addrphp" style="display:none;"><?php echo $url; ?></div>

你怎么认为呢?是不是要停止代理最多?是我的实现正确的(是做的最好的方式,我想要什么)?

Answer 1:

除非你使用像谷歌的缓存代理不改变页面的浏览器的请求地址。 该代理只是简单地接受您的请求,获取的任何地址在你请求的内容,并转发回复到您的计算机。 在任何时候,应将其更改地址,因为这是指你所要求的是你得到今非昔比。

如果本地IP在Javascript中可用,你可以平凡检查请求来自地址在Javascript中检测到的地址匹配,但JavaScript不能与低级别联网概念处理。 已签署的Java小程序可能,也许一个Flash / Silverlight的小程序以及,虽然我只是对这些猜测。

但是,检查IP地址将与微不足道的家用宽带路由器的东西也失败。 “本地” IP很可能是这样的10.0.0.13,但你的网站将检测该请求从任何路由器的外部地址是未来。 有没有“代理”参与,只需一个NAT网关,但要求IP!=客户端IP和哇,你代理,伙计!

最可靠的(仍然没有特别可靠的话)方法是检查各代理报头,如X-Forwarded-For



Answer 2:

我同意马克·B,最可靠的方法是检查你的HTTP请求寻找已知代理头。 有很多的在线工具,可以轻松地显示你的标题,例如,该代理头检查显示您最常用的HTTP头,由代理服务器,如果你看到你的IP在其中的一些,你一定能知道你是背后代理。

进一步说你的问题,在该链接是HTTP标头名,这样你就可以将它们复制并在脚本中使用它。

但马克说,进一步解释什么,如果你没有看到任何的将首它并不能保证有人不使用代理。 有很多代理,透明和高匿名那些不会在HTTP请求发送任何特殊的头的。



文章来源: Proxy detection
标签: php jquery proxy