2012-10-12 36 views
3

我不在尋找代碼/如何。只是知識。使用JS訪問用戶的歷史記錄

客戶剛剛問我們一個問題:我們是否可以從橫幅廣告中訪問用戶的歷史記錄,以便根據他們的歷史記錄爲他們提供一些有針對性的廣告。

顯然,這提出了一個隱私問題,但我需要給出一個很好的理由,爲什麼它在技術上不是一個可行的選項。

所以,我有幾個問題...

  1. 哪些瀏覽器仍然,如果有的話,支持訪問用戶的歷史,使用window.history
  2. 如果有人做了,有些人沒有。那些不允許的人什麼時候停止允許它?
  3. 如果所有的瀏覽器都允許它(我還沒有找到可用的腳本),爲什麼它不常用?

終於, 一直在Amazon.co.uk,我去Macrumors.com和廣告給我廣告根據我買了/看的產品。我猜這是基於cookies/amazon實施的系統?

只是爲了把事情說清楚:

  • 我知道這是一個隱私問題。我不在尋找代碼/一種方式來做到這一點(如上所述)
  • 有一些方法可以「嗅探」頁面中訪問過的鏈接。
  • 曾經有一種方法使用JavaScript對象來列出歷史記錄中的所有對象(來自當前網站)。 history.length現在仍然有效。我似乎記得一些瀏覽器只爲每個項目返回undefined,有些瀏覽器將它們作爲不可讀的object返回。
+0

你是什麼意思與 「歷史」?您是否在瀏覽器對象中使用後退和前進按鈕瀏覽對象,或瀏覽過的網站的歷史記錄? – reporter

+0

訪問過的網站的歷史... – jamesmhaley

回答

9

不!

有沒有瀏覽器(我知道),合法地給你訪問用戶的瀏覽歷史記錄。

已有incidentsexploiting certain behaviors of the browser可以這樣做。最近,在Firefox 16中有一個vulnerability,如果正確利用,它可以讓你瀏覽用戶的瀏覽記錄。

在你描述的情況下(亞馬遜),是的,使用cookies。爲了更準確,使用Third-Party Cookies

更新: 我在上次編輯很感興趣(約history是過去完全開放),所以我想回去了一點。

Firefox 3.0.19

enter image description here

+0

我還可以問爲什麼我一直被拒絕投票嗎?以及爲什麼該答案現在已被刪除? – jamesmhaley

+0

此外,我的問題仍然有效:window.history對象曾經是一個歷史項目數組(URL是作爲其中的一部分)。它現在是一個受保護的數組(在firebug中運行:window.history [0])... 那麼它什麼時候變成了一個無法訪問的受保護對象,並且它是爲了響應安全性,隱私性還是兩者兼而有之? – jamesmhaley

+0

@sparkyfied,我不確定我是否可以代表其他人回答,但我低估了它,因爲它有點偏離主題,我沒有看到任何努力。至於你的新問題,你可以查看[歷史界面規格](http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#the-history-interface) – Adi

相關問題