iphone上的Safari的历史记录存储

正如我们之前了解的那样,Safari将浏览历史存储在/private/var/mobile/Library/Safari/History.db数据库中。重要的是要理解,这个文件不仅仅存储来自本地设备的浏览历史 - 它还包含从iCloud同步的数据,例如来自其他设备的浏览历史。在分析这些数据时,检查员的任务是剖析在被检查的设备上访问了哪些网站,以及来自不同设备的数据已经同步了哪些。

以下截图显示了一个提取所有相关数据及其结果记录的查询示例:

注意,历史访问表中有一个"origin"列,该列指示该网站是否从iCloud同步(1)或未同步(0)。

这个数据库并不是浏览历史记录的唯一存储位置;关键的数据还可以在knowledgeC . db数据库中找到。尽管它仅存储大约一个月的数据,但knowledgeC . db仍然会包含有关访问的网页的详细信息,即使用户选择删除浏览历史记录。

以下查询将从knowledgec.db数据库的ZOBJECT表中提取Safari事件:

复制代码
SELECTDATETIME(ZOBJECT.ZSTARTDATE+978307200,UNIXEPOCH') AS "DATE"
ZSTRUCTUREDMETADATA.Z DKSAFARIHISTORYMETADATAKEYTITLEAS "TITLE",
ZOBJECT.ZVALUESTRING AS "URL"
ZOBJECT.ZSECONDSFROMGMT/3600 AS HGMT OFFSETH
FROM ZOBJECT
LEFT JOIN
ZSTRUCTUREDMETADATA
ON ZOBJECT.ZSTRUCTUREDMETADATA
ZSTRUCTUREDMETADATA.Z PK
LEFT JOIN
ZSOURCE
ON ZOBJECT.ZSOURCE = ZSOURCE.Z PK
WHERE
ZSTREAMNAME IS "/safari/history"
ORDER BY DATE ASC;

首先,我们必须选择浏览器事件发生时的时间戳,并通过使用DATETIME函数将其转换为可读字符串。然后,我们必须在ZSTRUCTUREDMETADATA表上执行JOIN操作,以提取网页的标题。之后,我们必须选择URL并计算GMT偏移量。最后,我们必须按时间顺序对结果进行排序。

相关推荐
代码的小搬运工19 小时前
KVO学习
学习·ios·cocoa
方白羽19 小时前
为什么 Android 非要用 Intent 传值?
android·ios·harmonyos
dora20 小时前
iOS开发新手的第一行代码
ios
用户38034165882971 天前
视频编辑器的滤镜图内核:Node/Pin 模型怎么设计,撤销重做怎么才不崩
ios
CocoaKier2 天前
苹果续费成功,几天后付费协议突然失效,导致线上苹果支付全部失败
ios·apple
深念Y2 天前
PVE 安装黑苹果并直通 Quadro P400
macos·ios·黑苹果·驱动·苹果·英伟达·p400
weixin-a153003083162 天前
7.Appium-ios端自动化
ios·appium·自动化
Anhty3 天前
2026九月最新变声器测评:iOS安卓双端适配,低延迟运行更稳定
android·人工智能·功能测试·ios·智能手机
_瑞3 天前
APM_OOMDetector
ios
秋雨梧桐叶落莳3 天前
【iOS】从源码深入理解RunLoop机制
macos·ios·objective-c·cocoa·cocoapods·uikit