手机版

document.referrer浏览器支持javascript 失败总结

时间:2021-09-10 来源:互联网 编辑:宝哥软件园 浏览:

交通源是交通统计服务中的一项功能。流量来源是指访问子类的概念。换句话说,当访问建立时,登陆页面的流量源就是访问的流量源。虽然流量来源有很多种,但遗憾的是,根据JS,获取流量来源的方式只有两种:document.referrer和window.opener,遗憾的是window.opener并不适合很多场景,而且document.referrer太弱了,很多场景下无法准确确定流量来源。

文档的覆盖

在使用意义上,document.referrer希望跟踪的是浏览器端的行为。如果打开一个页面A,在浏览器端有两种可能的动作:用户操作和JS代码。

让我们看看用户在打开页面a时可能会做什么:

1直接在地址栏中输入A的地址2从页面b向左单击链接A,跳转到页面a 3从页面b右键单击链接A,在新窗口中打开它4从页面b右键单击链接A,在新选项卡中打开它5将链接A拖动到地址栏6使用浏览器的向前和向后按钮将链接A拖动到选项卡栏7。注意,这里的link指的是一个标签,但如果有事件或目标,那就另当别论了。

JS打开页面的可能方式:

1修改window.location 2使用window.open 3单击flash,其中列出了客户端打开页面的一些方法。此外,如果采用服务器的重定向技术,也可以将页面a呈现给访问者。

下面是一个具体的浏览器测试。如果上面提到了这些情况,document.referrer的表现如何:

序列号场景IE8.0 FF3.6 FF4.0 chrome 1直接在地址栏输入a的地址' ' ' ' ' ' ' ';2从b页左侧点击链接A,A页替换b页(target=' _ self') 3从b页左侧点击链接A。A在新窗口中打开(target=' _ blank ')3右键单击页面b中的链接A,打开 '' 4右键单击页面b中的链接A,打开' ' 5鼠标拖动链接A到地址栏/''''''6鼠标拖动链接A到标签栏' ' ' ' ' ' ' ' ' ' ' ' 7使用浏览器的前进和后退按钮按住8修改窗口.位置打开页面(同域)' 9打开带有窗口的页面A .打开' '10单击

其中''表示空字符串,表示可以正确判断源页面,hold表示使用forward和backward不会改变页面的引用者。从这个表可以看出,文献引用可以涵盖大约一半的案例。但是对于一些常用的操作,比如用鼠标拖动链接到标签栏,前后移动等。我们无法正确处理它们。

文档来源. referrer

当浏览器向服务器请求页面A时,会发送一个HTTP请求。此请求的标题中带有“推荐人”属性。接收到请求后,服务器可以提取Header中的Referer,它可以用来判断访问者是从哪个页面发起请求的。

一般来说,当浏览器请求a时,发送的标题中的Referer是什么,那么在获得a页面后,document.referre的值是多少。上图是一个请求页面的页眉,a的文档参考是http://localhost/Test/b.html.如果您没有在页眉中包含Referre,当您使用document.referre获取它时,它将被指定为空字符串。

关于HTTPS请求

如果在普通的http页面上点击https链接,可以将Referer信息附加到HTTPS请求的头部,然后仍然可以使用document.referre获得普通的http页面。同样,如果在HTTPs页面上点击另一个HTTPS链接,可以将Referer信息附加到请求的头部。但是,如果从https页面单击http链接,不幸的是,发送的http请求头不能包含有关https页面的信息,这可能是由于对https页面的保护措施。

伪造推荐人信息

根据以上描述,文档引用来源于标题中的引用者。然后,如果你想修改document.referre的值,理论上,你只需要修改请求头。您可以用您想要的值替换标题中现有的引用,或者如果您没有引用,也可以添加一个引用。在客户端,很容易篡改报头。在一个页面的http请求发出之前,它可以被包拦截工具拦截,然后可以分析头部信息并修改Referre。搜索后,使用RefControl插件可以轻松修改FireFox。总之,很容易欺骗流量来源。

页面强制刷新

写完不久,发现自己错过了一种页面跳转的方式,就是在html中的meta标签中强制刷新指定的页面。例如,在b.html写复制代码如下:元http-equiv=' refresh '内容=' 5;URL=a.html ',浏览器会在5秒后自动向服务器发起页面请求。经过测试,IE8、FF3.6-FF4.0不包含refer信息,但是chrome可以在标题中添加b.html作为refer。

版权声明:document.referrer浏览器支持javascript 失败总结是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。