Chrome浏览器的Profile数据内容简介

前文简介了Chrome存储的账密/Cookie数据:一段代码读取Chrome存储的所有账号密码和Cookie

本文再扩展介绍一下Chrome存储的其它一些隐私数据。
注:因为业务需要,简单调研了一些基本内容和存储路径,没有深入去研究,有啥问题可以一起探讨。

Profile介绍

对于Chromium内核的浏览器,在使用过程中,会产生很多用户数据,比如浏览器配置、比如浏览过程中生成的缓存文件等等,都会存储在电脑的某个目录里。
这个目录以及里面的文件,就被称之为该用户的Profile。

Profile目录在哪里

对于不同的用户(匿名用户也算一个用户),每个用户都会有自己的独立的缓存目录,该用户产生的数据,也是存储在这个独立的用户缓存目录中,那如何找到这个目录呢?
以Chrome为例,在浏览器地址栏输入 chrome://version/ 可以看到页面上有个Profile Path(中文叫:个人资料路径),这个就是你的Profile数据存储所在的个人目录了,从这个英文名称,大家也就知道Profile这个命名的由来了:
在这里插入图片描述

Profile生成规则

  • 操作系统不同账号登录,Profile也在不同的目录下,所以不同系统用户,肯定是各自独立的Profile;
  • 同一个Windows用户,首次启动Chrome,该用户的Profile是在%LocalAppData%\Google\Chrome\User Data\Default
    然后登录Google账号后,会自动使用该Defalut目录,作为该Google账号的Profile目录
  • 如果在Chrome里登录第2个Google账号,会为该Google账号,创建一个新的Profile,下图是在我电脑上登录第2个Google账号,生成的新的Profile目录:
    在这里插入图片描述
  • 如果在同一台电脑上登录了多个谷歌账号,每次启动Chrome时,都会出现profile的选择窗口,让你选择使用哪一份Profile数据:
    在这里插入图片描述

Profile数据项介绍

每个Profile里,存储的主要数据有如下这些:

  • 浏览器的设置信息
  • 浏览器书签,你记录在浏览器里的快捷链接
  • 账号密码,比如twitter网站的账号密码
  • cookie,每个网站都会生成的一些个人相关的数据
  • 浏览器的历史访问记录
  • 浏览器下载历史记录
  • 浏览器自动填充的表单数据
  • 浏览器扩展,含扩展的程序文件和扩展写入的数据(如LocalStorage、IndexDB)
  • 浏览器访问的网页代码写入的数据,如LocalStorage、IndexDB
  • 浏览器访问过的网页缓存,如图片、css、js等
  • 浏览器关闭时,还未关闭的标签页列表
    注:以上并不是全部,这些个人隐私信息,需要关注和避免泄露。

下面的介绍,以Chrome为准,并假设Profile目录为:
%LocalAppData%\Google\Chrome\User Data\Default\

浏览器设置

存储文件路径:%LocalAppData%\Google\Chrome\User Data\Default\Preferences
这是一个json格式的文件,浏览器设置修改后都会存储在这里,包括登录后的账号信息也会在这里。
所以这里肯定会有我们的隐私内容。
你可以先备份,再尝试修改一些浏览器设置,再对比前后2个文件,就知道设置对应的json项了,文件内容参考:
在这里插入图片描述
注:还有另一个文件:%LocalAppData%\Google\Chrome\User Data\Default\Secure Preferences 里面也存储了一些安全相关的设置,不过内容比较少,我也没有深入去研究内容。

浏览器书签

存储文件路径:%LocalAppData%\Google\Chrome\User Data\Default\Bookmarks
这也是一个json格式的文件,就是你在Chrome里收藏的那些网址,可以通过快捷键Ctrl+Shift+B进行显示和隐藏,
这个当然也是个人隐私了。
该文件内容大致如下:
在这里插入图片描述

账号密码

存储文件路径:%LocalAppData%\Google\Chrome\User Data\Default\Login Data
这是一个sqlite数据库文件,账号密码存储在logins这张表里,该表的密码字段进行了加密,其它都是明文。
具体内容和读取方式,可以参考前文:一段代码读取Chrome存储的所有账号密码和Cookie

Cookie

存储文件路径:%LocalAppData%\Google\Chrome\User Data\Default\Network\Cookies
这也是一个sqlite数据库文件,数据存储在cookies这张表里,cookie的值在encrypted_value里,进行了加密,其它都是明文。
具体内容和读取方式,可以参考前文:一段代码读取Chrome存储的所有账号密码和Cookie

历史访问记录

存储文件路径:%LocalAppData%\Google\Chrome\User Data\Default\History
这还是一个sqlite数据库文件,所有历史访问记录存储在urls这张表里:
在这里插入图片描述

下载历史记录

下载历史记录也在上面这个History文件里,是在downloads这张表里:
在这里插入图片描述

自动表单数据

存储文件路径:%LocalAppData%\Google\Chrome\User Data\Default\Web Data
这也是一个sqlite数据库文件,所有自动表单填充记录存储在autofill这张表里。
在这里插入图片描述
注:这个数据库里还会存储你在Chrome里使用过的信用卡之类的数据。

扩展

存储目录路径:

  • 扩展的代码文件存储在这个目录下:
    %LocalAppData%\Google\Chrome\User Data\Default\Extensions\
  • 不会进行同步的扩展数据,存储在这个目录下:
    %LocalAppData%\Google\Chrome\User Data\Default\Local Extension Settings\
    比如使用js代码chrome.storage.local.set写入LocalStorage,就会存储在这个目录下
  • 会通过Google账号进行同步的扩展数据,存储在这个目录下:
    %LocalAppData%\Google\Chrome\User Data\Default\Sync Extension Settings\
    目录下有n个子目录,每个子目录是一个扩展
    比如使用js代码chrome.storage.sync.set写入LocalStorage,就会存储在这个目录下

网页写入数据

存储目录路径:

  • 网页代码写入的LocalStorage数据存储在这个目录下:
    %LocalAppData%\Google\Chrome\User Data\Default\Local Storage\
  • 网页代码写入的IndexedDB数据存储在这个目录下:
    %LocalAppData%\Google\Chrome\User Data\Default\IndexedDB\
    该目录下有n个子目录,每个域名或扩展一个,也是leveldb文件
  • 注:这2份数据,都是leveldb文件,我没去深入研究和解读

网页缓存

存储目录路径:%LocalAppData%\Google\Chrome\User Data\Default\Cache\Cache_Data\
这是一个目录,所有缓存都经过特殊处理后写入这里,这些文件无法正常访问,不过网上有人写了工具:
chromecacheview
你可以搜索并下载一下,通过这个工具,可以查看这些缓存里的内容:
在这里插入图片描述

网页缓存的延伸知识:
这些缓存会在本地存多久:(访问时间 - 该文件的最后修改时间) ÷ 10
参考:https://youbl.blog.csdn.net/article/details/84879670

未关闭的标签页

存储目录路径:%LocalAppData%\Google\Chrome\User Data\Default\Sessions
里面有2个Session开头的文件,还有2个Tabs开头的文件.
都是ssns格式的文件,参考解析说明,我没去进一步解析:
https://github.com/JRBANCEL/Chromagnon/wiki/Reverse-Engineering-SSNS-Format

其它知识

数据通用性

所有基于Chromium内核的浏览器,Profile数据项都是通用的,
以Chrome和Edge为例,验证方案:
关闭Chrome和Edge,再把Chrome的任意一项数据,复制到Edge的对应Profile目录下,再启动Edge,会发现Edge自动拥有了Chrome的数据。
注:尽量基于同一内核版本测试,因为不同的内核版本,一些字段会有差异,可能会有问题。

Profile里的时间格式

上述数据项里,都会有一些长整型格式的时间数据,这些不是标准的时间戳,而是表示自1601年1月1日以来经过的纳秒数,
下面是使用Javascript,把Chrome时间,转换为标准时间戳的示例代码:

const chromeTs = 13276168466314428;
const dt = new Date(1601,1,1);
dt.setMilliseconds(dt.getMilliseconds() + chromeTs/1000);
console.log(dt.getTime());

SSLKEYLOGFILE说明

ietf出的一个草案,这里有介绍及输出文件的格式说明:
https://www.ietf.org/archive/id/draft-thomson-tls-keylogfile-00.html

简单说,就是标准的浏览器,如 Chrome或Firefox、Safari、Edge、Elctron、curl等等,支持使用一个环境变量,把ssl通讯过程中生成的密钥记录下来,可以用于ssl流量的解密。
在系统环境变量里,设置一个环境变量,例如key为SSLKEYLOGFILE 值为 d:\sslkey.txt
确定保存后,重启Chrome,你就会在D盘看到记录密钥的sslkey.txt文件了

这个文件,可以搭配Wireshark抓包工具自动解密https的请求响应数据,
步骤参考:https://my.f5.com/manage/s/article/K50557518

filter展示:tcp.port==443 and (http or http2)

游戏

URL地址: chrome://dino/
这是Chrome内置的一个小恐龙游戏,进入后,通过按空格,来控制小恐龙躲避障碍。
如果处于断网状态,启动Chrome会自动提示这个游戏。联网里,可以通过输入上面的url来进入。
据说该游戏的长度,设置为17000年,所以你再厉害,也是无法通关的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/871793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新160个crackme - 002-abexcm5

运行分析 猜测需要输入正确序列号 PE分析 32位,ASM程序,无壳 静态分析 ida shift F12 ,发现字符串定位主函数 分析主函数 lstrcat:拼接字符串 lstrcmpiA:比较字符串 动态调试 serial输入123456调试 发现序列号…

Codeforces Round 957 (Div. 3)(A~D题)

A. Only Pluses 思路: 优先增加最小的数&#xff0c;它们的乘积会是最优,假如只有两个数a和b&#xff0c;b>a&#xff0c;那么a 1&#xff0c;就增加一份b。如果b 1&#xff0c;只能增加1份a。因为 b > a&#xff0c;所以增加小的数是最优的。 代码: #include<bi…

Spring Boot集成groovy快速入门Demo

1.什么是groovy&#xff1f; Groovy 是构建在 JVM 上的一个轻量级却强大的动态语言&#xff0c;它结合了 Python、Ruby 和 Smalltalk 的许多强大的特性。 Groovy 就是用 Java 写的&#xff0c;Groovy 语法与 Java 语法类似&#xff0c;Groovy 代码能够与 Java 代码很好地结合&…

STM32MP135裸机编程:定时器内核时钟频率计算方法

0 工具准备 STM32MP13xx参考手册 1 定时器内核时钟频率计算方法 1.1 定时器分组 STM32MP135的定时器按照时钟源不同分成了三组&#xff0c;如下&#xff1a; APB1: APB2: APB6&#xff1a; 1.2 定时器内核时钟频率计算方法 APB1DIV是APB1的分频系数&#xff0c;APB2DIV、…

python双下划线怎么打

连续按键盘上的“shift_”键两次即可&#xff0c;不同编辑器可能显示会不太一样。像图1中那样没连起来也是对的&#xff0c;没有语法错误。

基于python豆瓣电影爬虫数据可视化分析推荐系统(完整系统源码+数据库+详细文档+论文+详细部署教程)

文章目录 基于python豆瓣电影爬虫数据可视化分析推荐系统&#xff08;完整系统源码数据库详细文档论文详细部署教程&#xff09;一、 选题背景二、研究目的三、开发技术介绍1、Django框架2、LDA3、机器学习推荐算法4、大数据爬虫5、大数据Echarts可视化 四、系统设计思想五、部…

C++ | Leetcode C++题解之第235题二叉搜索树的最近公共祖先

题目&#xff1a; 题解&#xff1a; class Solution { public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {TreeNode* ancestor root;while (true) {if (p->val < ancestor->val && q->val < ancestor->val) {anc…

贪心算法案例

1.买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔…

代码随想录算法训练营第31天|LeetCode 56. 合并区间、738.单调递增的数字、968.监控二叉树

1. LeetCode 56. 合并区间 题目链接&#xff1a;https://leetcode.cn/problems/merge-intervals/description/ 文章链接&#xff1a;https://programmercarl.com/0056.合并区间.html 视频链接&#xff1a;https://www.bilibili.com/video/BV1wx4y157nD 思路&#xff1a; 本题关…

SpringBoot新手快速入门系列教程十一:自动生成API文档,Springboot3.x集成SpringDoc

本次项目我们用Maven来做&#xff0c;最近发现gradle其实很多项目的支持比较差&#xff0c;所以项目还是用Maven来新建项目。对比了市面上的几种API生成第三方库&#xff0c;只有springdoc 是能够按照文档就能部署出来的。 官网&#xff1a; OpenAPI 3 Library for spring-bo…

链接追踪系列-04.linux服务器docker安装elk

[rootVM-24-17-centos ~]# cat /proc/sys/vm/max_map_count 65530 [rootVM-24-17-centos ~]# sysctl -w vm.max_map_count262144 vm.max_map_count 262144 #先创建出相应目录&#xff1a;/opt/dockerV/es/…docker run -e ES_JAVA_OPTS"-Xms512m -Xmx512m" -d -p 92…

【流媒体】 通过ffmpeg硬解码拉流RTSP并播放

简介 目前RTSP拉流是网络摄像头获取图片数据常用的方法&#xff0c;但通过CPU软解码的方式不仅延时高且十分占用资源&#xff0c;本文提供了一种从网络摄像头RTSP硬解码的拉流的方法&#xff0c;并且提供python代码以便从网络摄像头获取图片进行后续算法处理。 下载ffmpeg F…

2024-07-15 Unity插件 Odin Inspector3 —— Button Attributes

文章目录 1 说明2 Button 特性2.1 Button2.2 ButtonGroup2.3 EnumPaging2.4 EnumToggleButtons2.5 InlineButton2.6 ResponsiveButtonGroup 1 说明 ​ 本章介绍 Odin Inspector 插件中有关 Button 特性的使用方法。 2 Button 特性 2.1 Button 依据方法&#xff0c;在 Inspec…

QT控件篇三

一、微调框 微调框&#xff08;QSpinBox&#xff09;是一个常用的Qt控件&#xff0c;允许用户通过增加或减少值来输入数字。分为两种, 整型-QSpinBox 浮点 QDoubleSpinBoxQSpinBox&#xff08;微调框&#xff09;的 setSingleStep 函数可以用来设置每次调整的步长&#xff08;…

【人工智能】人工智能与传统美工结合,AI美工的详细解析。

AI美工是一个结合了人工智能技术与美工设计的岗位&#xff0c;它利用AI工具和技术来辅助或完成美工设计的各项工作。以下是对AI美工的详细解析&#xff1a; 一、定义与职责 AI美工是指能够熟练使用AI工具和技术&#xff0c;如Midjourney、StableDiffusion等AIGC&#xff08;人…

2024安全行业大模型技术应用态势发展报告

以上是资料简介和目录&#xff0c;如需下载&#xff0c;请前往星球获取&#xff1a;https://t.zsxq.com/dH9bu

Python爬虫入门篇学习记录

免责声明 本文的爬虫知识仅用于合法和合理的数据收集&#xff0c;使用者需遵守相关法律法规及目标网站的爬取规则&#xff0c;尊重数据隐私&#xff0c;合理设置访问频率&#xff0c;不得用于非法目的或侵犯他人权益。因使用网络爬虫产生的任何法律纠纷或损失&#xff0c;由使用…

计算机网络之网络互连

1.什么是网络互连 1.1网络互连的目的 将两个或者两个以上具有独立自治能力的计算机网络连接起来&#xff0c;实现数据流通&#xff0c;扩大资源共享范围&#xff0c;或者容纳更多用户。 网络互连包括&#xff1a; 同构网络、异构网络的互连&#xff0c; 局域网与局域网&…

【Linux】多线程_5

文章目录 九、多线程6. 条件变量7. 生产者消费者模型 未完待续 九、多线程 6. 条件变量 在多线程编程中&#xff0c;一个或多个线程可能需要等待某个条件的发生&#xff0c;然后才能继续执行&#xff0c;而不是一直忙等。这种等待通常会占用CPU资源。条件变量提供了一种机制&…

【Java 的四大引用详解】

首先分别介绍一下这几种引用 强引用&#xff1a; 只要能通过GC ROOT根对象引用链找到就不会被垃圾回收器回收&#xff0c;当所有的GC Root都不通过强引用引用该对象时&#xff0c;才能被垃圾回收器回收。 软引用&#xff08;SoftReference&#xff09;&#xff1a; 当只有软引…