网站如何知道它们不是默认主页或搜索提供程序?


89

据我所知,浏览器的默认首页/搜索提供程序未公开API。那么Google如何知道显示此信息?仅当Google不是我的浏览器上的默认主页/默认搜索提供程序时,它才会出现。

Google页面弹出式窗口:“更快地访问Google。 将您的默认搜索引擎切换到Google。” Googe页面弹出式窗口:“经常来这里吗? 将Google设为您的主页。”

我只能假设它们是从众多变量(例如引荐来源网址)中推断出来的。我无法成功挖掘Google编译的JavaScript。我什至不确定是检测到客户端还是服务器端。

我使用的是Firefox 44,但我也在Chrome上看到了这些横幅。



1
即使将它们设置为默认值,我也可以在Edge中获得它们。它根本不知道。
Arturo TorresSánchez2015年

Answers:


70

只要有没有办法做到这一点使用JavaScript,因为“默认搜索/主页”是一个用户的喜好和你没有访问,没有用户的许可 ,因为这将是一个安全/隐私问题。

Google每次用户访问时所做的就是显示一个带有关闭图标和转到按钮的促销广告,其中包含如何将其设置为默认首页的说明。单击其中任何一个,它将创建2个cookie,以便下次它将检查您的cookie并使促销消失。即使当Google是您的主页并且您清除了cookie时,横幅仍会出现,以将Google宣传为您的主页。

我已经使用Firefox进行了检查,但不知道Chrome。


6
这对我来说很有意义。在私有模式下运行Firefox时,我会看到弹出窗口,因此它无法访问任何OHAI GOOGLEcookie。
Hammer的代码

自从编写Chrome以来,他们完全有可能对chrome做一些特殊的事情。
craftworkgames 2015年

由于Google仍然是默认搜索引擎,因此它们可能不会在Chrome中显示它
gengkev 2015年

主页信息可以由浏览器本身访问,就像IE过去曾经建议主页一样。
Khaled.K 2015年

19

我不知道Google到底做什么,但是我会做什么:

  • 使用一些特殊参数设置主页URL并进行检查-'http: //www.example.com/#! homepage(防止误报)
  • 检查 Referer字段:
    • 如果不存在,请假设用户已手动输入
    • 如果每次访问的用户访问非常相似(可能是浏览会话的开始-通过GA在那里的每个页面通过GA推断),则假定用户总是通过从某处点击进入此处
  • 设置Cookie,例如, visitedHelpAboutHomePage当用户访问“是,告诉我”页面时(可以防止误报,但也可能会产生误报)

请注意,“特殊参数”确实发生在“搜索框启动的搜索”方案中:存在一个sourceid可能表示“搜索源” 的参数。


2
#homepage虽然未提交到服务器,但可能可用于javascript。另外,我假设主页也没有引荐来源,对吗?
哈根·冯·埃岑

还不错,因此您尝试通过键入内容来查看用户是否访问了很多网站。因为您知道,首页只会在新窗口中打开,因此大多数情况下,用户会输入其地址,因为它不在书签在大多数情况下。
Khaled.K 2015年

嗯,区分书签/首页听起来很难(尤其是其中一种是另一种情况)...
Piskvor在

11

在我的Firefox(v42)中,“经常来这里吗?” 即使当我将Google设置为默认搜索提供程序时,也会出现一个框。

在Safari中,我在同一位置看到一个框,上面写着“一种更好的浏览网络方式:获取Google Chrome”

在Opera和Chrome浏览器中,即使我将默认搜索提供程序更改为Google以外的其他名称,我也没有任何显示。

因此,我相信他们所做的只是使用UserAgent对象在JavaScript中进行浏览器检测。


1
我想这可能只是纯粹基于UA的基础,但是有人希望Goog不会每天发布数百万个假阳性营销标语?我确实对此评论感到讽刺。
Tennyson H 2015年

3
成为搜索提供者与作为默认主页完全不同。
Elin 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.