亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

javascript的document.referrer瀏覽器支持、失效情況總結

2019-11-20 14:20:47
字體:
來源:轉載
供稿:網友

在流量統計服務中都有Traffic source這個功能。Traffic source是針對訪次級別的概念,換句話說,當訪次建立的時候,landing page的流量來源即是該訪次的Traffic source。雖然Traffic source有很多種,不過不幸的是依據現在JS,獲得Traffic source的途徑只有兩種――document.referrer、window.opener.更不幸的是,window.opener適用的場景不多,而document.referrer非常的弱,以至于很多場景下無法準確判斷出流量來源。

document.referrer的覆蓋

從使用意義上來說document.referrer希望能夠追蹤到的是瀏覽器端行為。如果一張頁面A被打開,那么瀏覽器端可能會發生的動作有用戶操作、JS代碼兩種。

先來看看用戶打開頁面A可能會進行的操作:

1 直接在地址欄中輸入A的地址
2 從B頁面左擊link A,跳轉至A頁面
3 從B頁面右擊link A,在新窗口中打開
4 從B頁面右擊link A,在新標簽頁中打開
5 拖動link A至地址欄
6 拖動link A至標簽欄
7 使用瀏覽器的前進、后退按鈕

注意這里的link即指<A>標簽,但是如果有事件或者target還要另當別論。

JS打開頁面可能的方式:

1
修改window.location
2
使用window.open
3
點擊flash

上面列出了客戶端打開頁面的一些方法,此外,如果通過服務端的重定向技術,也能夠使得頁面A呈現給訪客。

下面來針對具體的瀏覽器測試,如果是上述的這些情況,document.referrer表現如何:

序號 場景
IE8.0 FF3.6 FF4.0 chrome
1 直接在地址欄中輸入A的地址 " "
" "
" " " "
2 從B頁面左擊link A,A頁面替換B頁面(target='_self')
3 從B頁面左擊link A,A在新窗口中打開(target='_blank')
3 從B頁面右擊link A,在新窗口中打開 " "
4 從B頁面右擊link A,在新標簽頁中打開 " "
5 鼠標拖動link A至地址欄 " " " " " "
6 鼠標拖動link A至標簽欄 " " " " " " " "
7 使用瀏覽器的前進、后退按鈕 保持 保持 保持 保持
8 修改window.location打開A頁面(同域) " "
9 使用window.open打開A頁面 " "
10 點擊flash打開A頁面
11 服務器重定向至A頁面 " " " " " " " "

其中," "表示一個空的字符串,√表示能夠正確判斷來源頁,保持則意味使用前進后退不會改變頁面的referrer。從這張表里可以看出document.referrer能覆蓋大約一半的case。但是對于一些比較常用的操作,例如利用鼠標拖動link至標簽欄、前進后退等情況還不能做出正確的處理。

document.referrer的來源

瀏覽器在向server請求頁面A的時候,會發送HTTP請求。這個請求的Header里會帶上Referer屬性,server接收到該請求后,可以提取出Header里的Referer,用于判斷訪客是從哪個頁面發起的請求。

一般情況下瀏覽器請求A時發送的Header中Referer是什么,那么拿到A頁面后document.referre的值就是什么。上圖是一個請求A頁面的Header,A的document.referre為http://localhost/Test/b.html。
 
如果在Header中不包含Referre,那么用document.referre去取的時候,就會被賦值為空字符串。

關于HTTPS請求

如果在一張普通的HTTP頁面上點擊了HTTPS的鏈接,那么在https請求頭部可以附上Referer信息,之后在HTTPS頁面中依然可以用document.referre來獲得普通的http頁面。
 
同樣,如果是在一張https頁面上點擊了另一個HTTPS的鏈接,可以在請求的頭部附上Referer信息。
 
但是如果是從一張https頁面點擊了http鏈接,那么很不幸,發送的http請求頭里無法包含關于https頁面的信息,這可能是出于一種對https頁面的保護措施。

偽造Referer信息

根據上文的描述,document.referre源自于Header中的Referer。那么如果想修改document.referre的值,理論上講,僅需要修改請求Header。可以將Header中現有的Referer替換成自己想要的值,如果原來沒有也可以添加Referer。
 
在客戶端,篡改Header是一件非常容易的事情。在一個頁面的http請求發出去之前,可以利用截包工具將其攔截,然后分析出頭部信息,并且修改Referre。
 
搜了一下,對于FireFox可以使用RefControl插件方便的進行修改。總之,欺騙Traffic source是輕而易舉的事情。

頁面強制Refresh

寫完不久就發現遺漏了一種頁面跳轉的方式,即在html中的meta標簽里強制指定頁面進行refresh。例如在b.html中寫入

復制代碼 代碼如下:
<meta http-equiv="Refresh" content="5;URL=a.html">

則過5秒后瀏覽器會自動向server發起a頁面請求。
 
經過測試,在IE8,FF3.6-FF4.0中,均不會帶有Referer信息,但是chrome卻能夠鬼使神差的把b.html作為Referer添加進頭部。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美男插女视频| 久久久人成影片一区二区三区观看| 激情av一区二区| 日韩欧美在线视频日韩欧美在线视频| 日韩欧美高清在线视频| 亚洲一区国产精品| 国产精品视频自在线| 中文字幕欧美精品在线| 欧美体内谢she精2性欧美| 亚洲韩国青草视频| 日韩中文字幕久久| 欧美性xxxx极品高清hd直播| 中文字幕少妇一区二区三区| 欧美日韩亚洲精品内裤| 久久精品小视频| 国产免费一区视频观看免费| 孩xxxx性bbbb欧美| 亚洲人成人99网站| 日韩福利伦理影院免费| 国产精品福利在线观看| 97视频com| 欧美日韩国产精品一区二区不卡中文| 国产69久久精品成人看| 久久久免费在线观看| 中文.日本.精品| 亚洲欧洲日产国码av系列天堂| 久久福利网址导航| 午夜精品在线视频| 国产在线视频91| 97国产精品免费视频| 国产精品1区2区在线观看| 日韩av第一页| 成人在线观看视频网站| 中日韩美女免费视频网站在线观看| 欧美一级视频免费在线观看| 欧美在线视频网站| 国产精品日韩电影| 黑人巨大精品欧美一区二区| 亚洲人成伊人成综合网久久久| 久久精品男人天堂| 亚洲成年人在线播放| 91人成网站www| 欧美精品激情视频| 国产精品视频1区| 17婷婷久久www| 精品偷拍各种wc美女嘘嘘| 国产成人精品日本亚洲专区61| 亚洲免费福利视频| 欧美裸体视频网站| 欧美巨乳在线观看| 欧美日韩精品在线播放| 国产亚洲精品综合一区91| 久久视频这里只有精品| 91av中文字幕| www.欧美三级电影.com| 性色av一区二区三区免费| 国产精品99蜜臀久久不卡二区| 日韩免费在线看| 亚洲激情国产精品| 在线播放亚洲激情| 国产精品亚洲精品| 欧美日韩成人网| 国产丝袜一区视频在线观看| 日韩hd视频在线观看| 亚洲国产99精品国自产| 成人激情黄色网| 欧美激情免费视频| 91av在线免费观看| 久久91亚洲精品中文字幕奶水| 亚洲欧美第一页| 久久久久久有精品国产| 久久久久久久久久久人体| 久久人人爽人人爽人人片av高清| 国产乱肥老妇国产一区二| 亚洲精品自拍第一页| 国产精品第一第二| 亲爱的老师9免费观看全集电视剧| 亚洲欧美日韩一区二区三区在线| 国产成人精品一区二区| 欧美限制级电影在线观看| 亚洲成人黄色在线观看| 国产精品福利在线观看网址| 深夜福利国产精品| 国产精品成人观看视频国产奇米| 26uuu日韩精品一区二区| 97热精品视频官网| 国产亚洲人成网站在线观看| 国产精品美乳一区二区免费| 国产精品一区二区av影院萌芽| 亚洲第一页中文字幕| 久久综合久久美利坚合众国| 久久精品一本久久99精品| 亚洲第一视频在线观看| 一区二区三区视频免费在线观看| 日韩亚洲综合在线| 成人激情在线观看| 久久夜色精品国产欧美乱| 国产99久久精品一区二区永久免费| 精品精品国产国产自在线| 欧美在线日韩在线| 中文字幕九色91在线| 狠狠干狠狠久久| 亚洲国产成人久久| 91中文在线视频| 久久久视频在线| 一级做a爰片久久毛片美女图片| 在线电影欧美日韩一区二区私密| 亚洲xxxx妇黄裸体| 欧美日韩一区二区三区在线免费观看| 亚洲欧美中文日韩在线| 一区二区中文字幕| 最近2019年中文视频免费在线观看| 中文字幕日韩综合av| 欧美高跟鞋交xxxxxhd| 久久国产精品偷| 亚洲精品国产精品久久清纯直播| 精品久久香蕉国产线看观看亚洲| 亚洲有声小说3d| 国语对白做受69| 久久精彩免费视频| 久久久人成影片一区二区三区| 96sao精品视频在线观看| 色先锋资源久久综合5566| 97在线免费观看| 亚洲男人的天堂在线播放| 98视频在线噜噜噜国产| 夜夜嗨av一区二区三区免费区| 91欧美精品成人综合在线观看| 91高清免费在线观看| 粉嫩老牛aⅴ一区二区三区| 国产亚洲视频中文字幕视频| 久久中国妇女中文字幕| 91超碰中文字幕久久精品| 深夜福利国产精品| 精品国产一区二区三区久久狼黑人| 久久国产精品久久国产精品| 亚洲国产精久久久久久| 久久精品亚洲94久久精品| 2019中文字幕在线免费观看| 欧美成人一区二区三区电影| 欧美激情综合色综合啪啪五月| 麻豆国产va免费精品高清在线| 亚洲精品美女视频| 欧美超级免费视 在线| 久久久久久国产精品三级玉女聊斋| 在线精品播放av| 国产午夜精品麻豆| 欧美极品少妇xxxxx| 高清欧美电影在线| 久久99精品久久久久久琪琪| 夜夜嗨av一区二区三区四区| 欧美国产亚洲精品久久久8v| 国产精品激情av在线播放| 久久夜精品va视频免费观看| 中文字幕亚洲欧美日韩在线不卡| 国产一区二区三区三区在线观看| 成人福利视频在线观看| 国产精品久久在线观看| 97视频免费看| 成人h片在线播放免费网站| 992tv成人免费影院| 亚洲人成在线播放| 欧美日韩国产中文字幕| 日韩欧美亚洲成人|