正 文:
前一阵子,飘易写了一篇《
PHP伪造来源HTTP_REFERER的方法》,讨论了一下如何伪造来路信息referer,包括php和asp语言环境下的,今天,看到另一个JavaScript下的方法,经过测试,效果不错。
在IE浏览器、火狐浏览器FF下,可以正常获取来路referfer,方法也挺简单的,FF下window.location方法可以,但在IE下不行;IE下虚拟点击的方式可以获取,但FF不支持,那么就通过判定当前的浏览器是IE还是FF,然后执行对应的代码,referer就能被统计到了。
代码如下:
<script>
var url="http://www.piaoyi.org";
function goto2(){
if(navigator.userAgent.indexOf("MSIE")>0){
document.write("<a id='goa' href='"+url+"' style='display:none;'>a</a>");
document.getElementById("goa").click();
}else{
window.location=url;
}
}
goto2();
</script>
这是代码原文地址:http://www.yubone.cn/post/174/,感谢原作者。
PS(2009-9-21):经过飘易的测试,上面的代码需要作调整,否则也无法通过“document.referrer”获取来路。代码要调整如下:
<a id='goa' href='http://www.piaoyi.org' style='display:none;'>飘易</a>
<script>
var url="http://www.piaoyi.org";
function goto2(){
if(navigator.userAgent.indexOf("MSIE")>0){
document.getElementById("goa").click();
}else{
window.location=url;
}
}
goto2();
</script>
补充,获取referrer来路的方法:
js:
<script type="text/javascript">
document.write(document.referrer);
</script>
php:
echo $_SERVER['HTTP_REFERER'];