隐藏实际的链接引用者,如谷歌

Posted

技术标签:

【中文标题】隐藏实际的链接引用者,如谷歌【英文标题】:hide actual link referrers like google 【发布时间】:2014-03-26 19:14:40 【问题描述】:

我曾经在我的博客中跟踪传入的搜索词。我曾经通过获取引荐来源网址然后提取搜索到的查询来做到这一点。我知道 Google 曾经使用 javascript 事件处理链接,因此它在重定向后更改了引用者。但我不知道即使是 Google 上的实际链接也没有 HTTP Referer

例如,我在 Mozilla Firefox 中打开“https://www.google.com/search?q=referrer”,然后使用 Firebuginspector 等工具编辑 html , 并插入一个超链接到显示引荐来源或提取搜索词的脚本。 我知道这是 Google 隐私政策的一部分,不包括在引荐来源网址中搜索的字词。但我真的很想知道这是怎么可能的,以及它是如何完成的。

如何更改我网站上每个链接的引荐来源网址?我的意思是实际链接。不是那些使用 JavaScript 或重定向的句柄。

服务器或某些 JavaScript 代码是否告诉浏览器在发送 GET 请求时不要发送“Http-referer”标头?同样,我不是在寻找重定向解决方案。

难道他们用 JavaScript 为每个链接添加了rel="noreferrer" 属性?我还没有检查他们的脚本。

【问题讨论】:

【参考方案1】:

如果您检查 Google 搜索结果中的链接,您会发现它们实际上并未指向结果网站,而是指向内部 Google 网址。比如in a search for 'test',第一个结果(至少对我来说)是

Speedtest.net by Ookla - The Global Broadband Speed Test

但这个链接上的href实际上指向

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCgQFjAA&url=http%3A%2F%2Fwww.speedtest.net%2F&ei=6ykzU774HujisAT1uYG4Bg&usg=AFQjCNHr6YyAkpiq37Q1AYAxF9ZW18CZrw&bvm=bv.63738703,d.cWc&cad=rja

请注意,此链接不包含您的查询。链接上的 data-href 属性包含实际的 URL。还有一些在鼠标按下时运行的 javascript 可能会有所帮助。

关键是,重定向的是这个临时页面,因此当用户点击您的网站时您看到的引荐来源网址不包含任何关键字。如果你想实现它,你必须对用户进行 cookie,将他们的查询/目标存储在会话变量中,并构建一个重定向脚本,使用它来发送他们。

【讨论】:

我已经知道了。我提到我的问题不是这个意思。我的意思是,即使您在该页面中添加与检查员的实际链接,也不会有“推荐人”。再次阅读我的问题,并尝试我刚才所说的...... 那么很可能他们的 javascript 正在执行重定向 - 在您更改 href 属性并单击链接后,您仍然会被定向到内部 Google URL 并发送到您的目的地。无论是通过javascript还是直接通过href都没有关系,额外的跳转是删除带有查询的引荐来源网址的原因。 rel="noreferrer" 不够防弹——并非所有浏览器都支持它,用户可以修改他们的浏览器以忽略它。在这种情况下不要相信用户。 看,我不只是更改 href 并将所有 ID、类和事件留给链接。我添加了一个新链接。一个全新的锚标记,如下所示:click!。试试我说的吧。即使删除了整个页面,包括脚本和检查器中的所有内容,它也会发生。说真的,现在就试试。它一直在发生。这怎么可能?我该怎么做?

以上是关于隐藏实际的链接引用者,如谷歌的主要内容,如果未能解决你的问题,请参考以下文章

如何处理隐藏 div 内的谷歌地图(更新图片)

ASP.Net 代码隐藏 - 获取谷歌付费广告信息

自动隐藏引导弹出框[关闭]

从隐藏在多索引中的年月创建日期时间

当用户关注弹出内容时,引导弹出内容不应隐藏

在 HTTP 请求中了解引用者/引用者的安全方法是啥?