2012-09-27 49 views
3

我寫了一個小測試頁,用javascript抓取document.referrer的用戶,併發送給一個簡單的日誌服務器(如sendReferrer(document.referrer))。`document.referrer`是否被url編碼?

Firefox發送的引用網址始終是網址編碼的(例如,當引用網址爲www.google.com/search?q時,「http://www.google.com/search?q=%C3%9C」 = U)

但是,一些客戶端(如IE9 Win7上)發送網址不URL編碼(www.google.com/search?q=Ü)

是在所有瀏覽器document.referrer是URL編碼?這是否可靠(任何標準的一部分)?

UPDATE:在Firefox15/Chrome21(在Ubuntu)document.referrer是URL編碼

+0

這是不可靠的;它可能被欺騙或禁用。 – Pointy

+2

@Pointy我認爲quesiton是關於它被編碼的可靠性與否。 – Yoshi

+0

@Yoshi可能是因爲任何原因在任何應用程序中依賴它是不好的做法。首先這是一個糟糕的主意。 – Pointy

回答

1

我對這個問題的最終答案:Referer可能/可能不會被編碼!我的測試有些(只有一些!)IE發送未編碼的引用(我想這取決於客戶端系統的區域設置)

5

document.referrer不URL編碼我最近測試了它在所有主要的瀏覽器,它顯示爲不編碼在其中的每一個。

+0

我在Firefox15/Chrome21中測試過,並且它是由網址編碼的 –

+0

在某些情況下,來自document.referrer的字符串,如果你把它放在一個cookie或其他東西中,最終會被編碼。但是document.referrer本身不是URL編碼的。 – Develoger

+0

我用'console.log'檢查它,它是真正的url編碼。 –