【问题标题】:Is `document.referrer` url-encoded or not?`document.referrer` 是否是 url 编码的?
【发布时间】:2012-09-27 12:29:56
【问题描述】:

我写了一个小测试页面,用 javascript 抓取 document.referrer 的用户并将其发送到一个简单的日志服务器(如 sendReferrer(document.referrer))。

Firefox 发送的引荐来源网址始终是 url 编码的(例如,当引荐来源网址为 www.google.com/search?q= 时,“http://www.google.com/search?q=%C3%9C” Ü)

但有些客户端(如 Win7 上的 IE9)发送没有 url 编码的 url (www.google.com/search?q=Ü)

document.referrer 在所有浏览器中都是 url 编码的吗?这是否可靠(任何标准的一部分)?

更新:在 Firefox15/Chrome21(在 ubuntu 上)document.referrer 是 url 编码的

【问题讨论】:

  • 不可靠;它可以被欺骗或禁用。
  • @Pointy 我认为问题在于它是否被编码的可靠性。
  • @Yoshi 尽管如此,在任何应用程序中以任何理由依赖它都是不好的做法。一开始这是个坏主意。
  • 对@Yoshi 是的。我的意思是编码的可靠性

标签: javascript cross-browser url-encoding referrer


【解决方案1】:

document.referrer 没有经过 URL 编码我最近在所有主流浏览器中都对其进行了测试,结果表明它在所有主流浏览器中都没有经过编码。

【讨论】:

  • 在某些情况下,来自 document.referrer 的字符串,如果您将其放入 cookie 或其他内容中,最终可能会被编码。但是 document.referrer 本身不是 url 编码的。
【解决方案2】:

我对这个问题的最终答案:Referer 可能/可能不会被编码!通过我的测试,一些(只有一些!)IE 发送未编码的引荐来源网址(我想这取决于客户端系统的语言环境)

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 2011-07-03
    • 2018-08-09
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 2010-10-13
    • 2018-08-18
    相关资源
    最近更新 更多