繁体   English   中英

是否可以将两个不同的Firefox配置文件实例跟踪到同一台计算机?

Can two different instances of Firefox Profiles be tracked to the same machine?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在使用Selenium和firefox进行一些无头测试,以登录某些网站。 如果我在同一浏览器中的不同的Firefox配置文件之间切换以登录网站上的独立帐户,除了IP跟踪之外,还有什么方法可以跟踪我的连接并找出全部在同一台机器上(运行Selenium脚本的机器)吗?

我在做什么:

profile = webdriver.FirefoxProfile('path/to/profile1')
driver = webdriver.Firefox(profile)
driver.get("website.com")
#connect as user1 on website & do stuff...
driver.quit()

profile = webdriver.FirefoxProfile('path/to/profile2')
driver = webdriver.Firefox(profile)
driver.get("website.com")
#connect as user2 on website & do stuff...
driver.quit()

编辑:换句话说,给定上面的代码(不包括IP跟踪),website.com能否确定帐户user1和user2实际上在同一台计算机上(因此一个人有2个帐户)?

1 个回复

多个Firefox配置文件

Firefox中的配置文件是用户在Firefox副本中进行或安装的设置,自定义项,加载项和其他个性化设置的集合。

具有多个配置文件的原因

临时用户可能希望为不同的家庭成员拥有不同的个人资料。 具有不同的配置文件将允许每个人拥有他或她自己的一组书签,设置和附加组件。

Web开发人员可能希望使用辅助配置文件来测试不同Firefox通道上的网站,应用程序或其他项目。 例如,您可能想要安装一些扩展用于Web开发,而不是常规Web浏览。

对于质量检查,测试和错误分类贡献者,您可能需要安装Firefox的多个开发版本,每个版本都有自己的配置文件。 创建新的配置文件进行测试可以防止您丢失首选项书签历史记录 只需很少的时间即可设置新的配置文件,完成后,所有Firefox版本将分别更新并可以同时运行。

破灭神话

因此,具有多个Firefox配置文件Firefox浏览器客户端的多个实例可以同时运行。 因此,您的假设...如果我在同一浏览器中的不同的Firefox配置文件之间切换以登录到单独的帐户...是不正确的。 Web浏览客户端的变体可能是相同的,例如Firefox,但是它们每个都将继承不同的首选项书签历史记录集


用户代理

您的用户代理告诉您访问的每个站点您正在使用的浏览器。 网站可以检测到您的UA,并根据需要重定向到浏览器的更合适页面。 换句话说,如果您通过手机到此站点进行了适当的检测,则该站点可能会通过UA检测到您是移动用户,并将您重定向到他们的移动站点(如果有)。 由于并非所有站点都具有UA检测功能,因此这不适用于所有站点。

UA还会告知网站您正在访问的浏览器相关软件可能已经安装。 例如,此UA:

(Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 1.1.4322; .NET CLR 3.5.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0;) 

告诉我们该访客正在使用Internet Explorer 8,Windows Vista,安装了Media Center PC 5.0,Office Live Connector等。因此,如果我们为Vista用户提供了一个特殊部分,则可以基于Windows NT 6.0字符串重定向此人到我们网站上与Vista严格相关的子部分。 另一方面,此用户代理:

Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 

告诉我们访客正在使用FireFox 3.5.3和Windows Vista。 没什么。

有了上面的知识,许多不想让人们知道如何到达站点的程序员就会使用User Agent Spoofing。 一些程序员会找到合法的UA,并对其脚本进行编程以使用此类UA。 UA可以为空白,也可以包含自定义信息,例如指向可能会推广特定浏览器或脚本的网站的URL。


更新

根据您的问题更新...可以在website.com上找出帐号user1和user2实际上在同一台计算机上吗...我不确定用户代理是否携带浏览器配置文件信息。 但是,基于不同的用户代理,可以提取不同的参数。 例如,对于用户代理字符串,例如:

Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36

不同的User-Agent检测库认为如下:

  • 根据useragent v2.1.9:

    • UA

       rawUa: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 string: family: Chrome major: 70 minor: 0 patch: 3538 device: Other 0.0.0 
    •  string: Windows 8 0.0.0 family: Windows 8 major: 0 minor: 0 patch: 0 
  • 根据ua-parser-js v0.7.11:

    • UA

       ua: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 
    • 浏览器

       name: Chrome version: 70.0.3538.102 major: 70 
    • 发动机

       name: WebKit version: 537.36 
    •  name: Windows version: 8 
    • 设备

       model: undefined vendor: undefined type: undefined 
    • 中央处理器

       architecture: amd64 
  • 根据platform.js v1.3.3:

    • UA

       name: Chrome version: 70.0.3538.102 layout: Blink 
    •  os: Windows 8 64-bit 
    • 设备

       product: manufacturer: description: Chrome 70.0.3538.102 on Windows 8 64-bit 
2 如何在同一台计算机上连接两个仿真器实例并在它们之间传输数据(文件)?

来了 在连接到Internet的同一台计算机上有两个模拟器实例,例如A和B。 现在我需要在A和B之间传输文件。我该怎么做? 我写一个ftp可能有意义..但是不确定端口和ips的方式。 Android支持简单的文件传输吗? (应该在仿真器之间工作) 知道实现此目标的所有方法 ...

3 在同一台计算机上安装两个WPF应用程序实例

我有一个WPF应用程序。 我使用Visual Studio将其发布到计算机上的文件夹中。 然后,我单击该应用程序以运行它。 在运行它之前,该应用程序询问我是否可以安装它。 我回答是肯定的。 然后,我在Visual Studio中更改了配置文件,使其指向另一个数据库实例并发布到另一个文件 ...

5 在同一台计算机上安装Windows桌面应用程序的两个实例

我已经使用VS Express 2012 for Windows Desktop编写了一个应用程序。 我的客户希望能够在同一台计算机上安装该应用程序的两个实例。 一个是生产版本,另一个是测试版本。 它们将连接到两个不同的数据库。 当然,当我尝试安装第二个实例时,会收到消息“您无法 ...

8 如何区分两个IP是否属于同一台计算机?

我们在不同的计算机上有客户端的主程序和代理(两者)。 网络配置可以是任何类型(我们不知道)。 代理连接到主程序,目前我们只能获取IP和计算机名称作为信息。 如何区分两个IP是否属于同一台计算机? 计算机可能有多个以太网卡。 谢谢。 ...

9 是否可以在同一台计算机上安装两个不同版本的Visual Studio? [重复]

这个问题在这里已有答案: 我可以在同一台计算机上安装两个不同版本的Visual Studio吗? 3个答案 可能吗? 或者两个版本之间存在兼容性问题? 因为我们公司使用的是过时版本的visual studio(VS2005),我想尝试Visual Studio ...

10 是否可以在同一台计算机上的两个不同程序之间使用公共指针

我需要2个不同的程序来处理单个数据集。 我可以在它们之间建立网络(UDP)连接,但我想通过任何方式避免传输整个数据。 这听起来有点荒谬,但有可能在这两个程序之间共享某种指针,这样当一个更新它时,另一个可以简单地获取指针并开始使用它吗? 我正在使用Ubuntu 9.10 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM