【问题标题】:When browser sets the "referrer" in HTTP Request header?当浏览器在 HTTP 请求标头中设置“引荐来源”时?
【发布时间】:2011-07-20 12:54:27
【问题描述】:

我有一个登录页面,出于 SSO 的目的,来自不同域的用户被重定向到此页面。我使用referrer HTTP Header 字段来了解用户来自哪里,因此在成功登录后,我将他/她返回到他/她的原始域。 但有时我的推荐人没有设置,而其他时候它已设置。为什么?

【问题讨论】:

    标签: asp.net http browser http-headers


    【解决方案1】:

    用户可以使用不同的方法访问您的页面:

    1. 直接在浏览器的地址栏中输入您网页的网址
    2. 通过从其他网站点击指向您网站的链接
    3. 通过重新加载当前页面
    4. 通过在您的网站上提交表单(将 POST 请求发送回您的网站)
    5. 通过浏览器的后退/前进按钮导航。
    6. 通过上一页重定向到当前页。

    现在,浏览器在设置referrer 标头字段的方式和时间方面确实存在差异。但作为一般规则,您可以确定在点击链接或提交表单(发布请求)时,他们会设置referrer 字段。此外,如果您通过重定向或链接来到当前页面,浏览器仍会在 F5 上保留引用标题(页面重新加载)。

    如果您看到您的推荐人字段为空,那是因为有人知道您的登录页面 URL 并将其直接输入到地址栏中,或者有人已将其添加为书签,因此发送了 GET 请求。

    通常,您不应该总是期望引用者字段,因为它不在您的控制范围内。您应该使用 cookie 或查询字符串,因为它们在您的控制之下。

    【讨论】:

    • @Saeed,“你可以确定”,除非用户只是在其浏览器中禁用了该功能。
    【解决方案2】:

    另一件事是,作为浏览器安全设置的一部分,某些用户可能在其浏览器中将引用选项设置为禁用。

    【讨论】:

      猜你喜欢
      • 2018-07-23
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      • 2018-01-09
      • 2014-03-24
      • 1970-01-01
      相关资源
      最近更新 更多