当 sec-fetch-site 为 cross-site 时,如何在 Chrome 中获得完整的引用 URL

How to get full referer URL in Chrome when sec-fetch-site is cross-site

我有一个由客户团队管理的客户网站,post 点击登录后会进入由我们管理的网站。到目前为止,我们从请求 header 中提取 referer URL 并使用它来采取进一步的行动,但目前由于 Chrome 浏览器和 Edge 浏览器政策的一些变化,我们无法获得完整的引用 URL。它在 Firefox 和 Internet Explorer 中运行良好。这可能是因为浏览器策略限制在 sec-fetch-site 为 cross-site 时发送完整的引用 URL。请用一些简单的代码级方法 (Java/JSP/Javascript) 帮助我提取完整的 URL。我尝试探索几个链接,但 none 帮助我解决了这个问题。

Mozilla Firefox 和 Internet Explorer 使用名为“no-referrer-when-downgrade”的引用策略。早些时候 Chrome 也使用了相同的策略,但它现在已经转移到 'strict-origin-when-cross-origin' 这限制了 referrer URL 只包括URL 的域。 让它也适用于 Chrome 浏览器的解决方案是在您的请求开始的页面中将策略设置为“no-referrer-when-downgrade”,即初始页面(在您的情况下是客户端管理的页面),这将有助于发送完整的详细信息,并且不会应用浏览器的默认策略。您可以参考以下link以更好地了解这些更改后的政策:

https://www.w3.org/TR/referrer-policy/