我有一个登录页面,来自不同域的用户会被重定向到该页面以进行SSO。我使用引用HTTP头字段来知道用户来自哪里,因此在成功登录后,我将其返回到其原始域。但有时我的引用者未设置,而其他时间则已设置。为什么?
我有一个登录页面,来自不同域的用户会被重定向到该页面以进行SSO。我使用引用HTTP头字段来知道用户来自哪里,因此在成功登录后,我将其返回到其原始域。但有时我的引用者未设置,而其他时间则已设置。为什么?
用户可以通过不同的方法访问您的页面:
现在,浏览器在设置referrer header字段的方式和时间方面确实有所不同。但是作为一个通用规则,您可以确定,在链接单击或提交表单(post请求)时,它们会设置referrer字段。此外,如果您通过重定向或链接来到当前页面,则浏览器在F5(页面重新加载)时仍会保留referrer header。
如果您发现referrer字段为空,这是因为有人知道您的登录页面URL并直接输入地址栏,或者有人已将其加入了书签,因此发送了GET请求。
一般来说,您不应总是期望referrer字段存在,因为这超出了您的控制范围。您应该使用cookie或查询字符串,因为它们在您的控制之下。
另一件事是,有些用户可能在其浏览器的安全设置中将引荐者选项禁用。