【问题标题】:How to do a redirect without the original referrer showing?如何在不显示原始推荐人的情况下进行重定向?
【发布时间】:2010-10-19 20:33:47
【问题描述】:

我需要将我的网站访问者重定向到第三方网站,而不会将原始引荐来源网址显示为网址泄露私人信息。

有没有一种方法可以在不向目标站点发送引荐来源网址的情况下指示浏览器重定向?例如。使用javascript?

谢谢

【问题讨论】:

  • 您的答案已在下方发布。但是对于在 URL 中包含持久的私有信息的想法,我是否可以建议非常谨慎。这是一件非常糟糕的事情。还有其他方式可以窃取信息。

标签: javascript http redirect


【解决方案1】:

作为一种快速解决方法,您可以将它们重定向到您拥有的特殊 URL,该 URL 专门重定向到目标 URL(或作为查询参数提供的 URL)。这样,私人信息就会在额外的跃点中丢失。

【讨论】:

  • 当我这样做时,例如tinyurl 重定向,在加载最终目标页面时仍会显示原始引荐来源网址。
  • 对,您必须设置自己的 HTTP 请求处理程序,该处理程序只需使用 Location 标头作为您的重定向 URL 响应“302 Found”,并且最好覆盖 Referer 标头,以防您的网络服务器或容器复制该标头自动用于 302 响应。
【解决方案2】:

使用 JavaScript:您可以创建一个带有禁止引用属性的链接,然后模拟点击它。

var link = document.createElement("a");
link.referrerPolicy = "no-referrer";
link.rel = "noreferrer";

link.href = "https://example.org/";
link.click();

或者,在纯 HTTP 重定向中,您可以将 Referrer-Policy: no-referrer 标头与重定向一起发送。

【讨论】:

    【解决方案3】:

    你试过了吗

    <meta http-equiv="refresh" content="0;url=http://www.someplace.com">
    

    【讨论】:

    • 这仍然会导致原始网址作为引荐来源网址发送
    【解决方案4】:

    您需要通过另一个页面重定向。您可以对自己的页面进行 POST,然后重定向到目的地。这将仅将您的中间页面显示为引荐来源。

    仅使用 javascript 是无法做到这一点的。

    【讨论】:

      【解决方案5】:

      例如尝试使用 curl 进行重定向。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-28
        • 1970-01-01
        • 2016-12-24
        • 2012-08-17
        • 2014-04-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多