Where a Digital Footprint Check Gets Its Data

Where a Digital Footprint Check Gets Its Data

数字足迹检查的数据来源

A footprint report hands you a score and a list of flagged posts, and the instinct is to start working through the list. Which files the tool opened, and whether any of it left your machine, tends to be an afterthought. That gap matters, because the credibility of every number in the report depends on it.

一份数字足迹报告会为你提供一个评分和一份被标记的帖子列表,人们的直觉通常是直接开始处理列表。至于工具打开了哪些文件,以及是否有任何数据离开了你的设备,往往是事后才考虑的问题。这种认知差距很重要,因为报告中每一个数字的可信度都取决于此。

The files that get opened

被读取的文件

After extraction, the data folder holds around twenty files. A check reads only the ones tied to post content and account history.

解压后,数据文件夹中大约包含二十个文件。检查程序只会读取那些与帖子内容和账户历史相关的文件。

FileWhat it holdsRole in the report
文件内容在报告中的作用
tweets.jsEvery historical post, timestamps, engagement countsPrimary source for the score and the risk list
tweets.js所有历史帖子、时间戳、互动计数评分和风险列表的主要来源
like.jsLike historySignals interest patterns and topic exposure
like.js点赞历史标记兴趣模式和主题暴露情况
direct-messages.jsDirect message historyDetects contact details shared in private threads
direct-messages.js私信历史检测在私密对话中分享的联系方式
phone-number.js, email-address-change.jsLinked contact details and change historySupporting evidence for contact exposure
phone-number.js, email-address-change.js关联的联系方式及更改历史联系方式暴露的辅助证据
ip-audit.js, account-creation-ip.jsLogin and account creation recordsTimeline verification, region inference
ip-audit.js, account-creation-ip.js登录和账户创建记录时间线验证、地区推断

tweets.js does the heavy lifting. The remaining files act as cross-checks. If one stretch of tweets.js is dense with location mentions, and the IP records show logins from that city in the same window, the location signal is far stronger than post text on its own.

tweets.js 承担了大部分繁重的工作,其余文件则起到交叉验证的作用。如果 tweets.js 中的某一段包含大量位置提及,而 IP 记录显示在同一时间段内有来自该城市的登录记录,那么该位置信号的可信度要远高于仅凭帖子文本的判断。

Which file feeds which block

各个数据块的来源

A report reads as a single verdict. Taken apart, each block has a different origin.

报告看起来像是一个单一的结论,但拆解开来看,每个数据块都有不同的来源。

Report blockMain sourceMethod
报告板块主要来源方法
0 to 100 health scoretweets.jsWeighted by item count and share per risk category
0 到 100 的健康评分tweets.js按项目数量和各风险类别的占比加权
Risk item listtweets.jsPattern matching for phone numbers, emails, addresses, locations
风险项目列表tweets.js针对电话号码、电子邮件、地址、位置的模式匹配
Sensitive topic flagstweets.jsDictionary and context rules, with false positives
敏感主题标记tweets.js词典和上下文规则,包含误报处理
Activity timelinetweets.js plus IP recordsAggregated by timestamp
活动时间线tweets.js 加 IP 记录按时间戳聚合
Contact exposure surfacetweets.js, direct messages, account filesCross-file comparison
联系方式暴露面tweets.js、私信、账户文件跨文件比对

Because the blocks draw on separate sources, a problem in one does not contaminate the others. A mislabelled topic flag does not move the contact exposure line.

由于这些板块利用了不同的来源,其中一个板块的问题不会污染其他板块。例如,一个被错误标记的主题不会影响联系方式暴露的统计结果。

What gets skipped on purpose

故意跳过的内容

Unread fields fall into two groups: those unrelated to privacy risk, and those that would distort the analysis.

未读取的字段分为两类:与隐私风险无关的字段,以及会扭曲分析结果的字段。

  • Ad engagement records. Nothing to do with what you posted, and they only inflate item counts. 广告互动记录。 与你发布的内容无关,只会虚增项目数量。
  • Follower and following lists. Volume swamps signal, and they involve other people’s data. 关注者和被关注者列表。 数据量过大会淹没有效信号,且涉及他人的隐私数据。
  • Device tokens and personalization settings. No bearing on whether a post carries risk. 设备令牌和个性化设置。 与帖子是否带有风险无关。
  • Language tags stored on posts. Re-detected during parsing, since stored tags drift over time. 帖子存储的语言标签。 在解析过程中重新检测,因为存储的标签会随时间推移而失效。

That filtering has a visible consequence. Report item counts come out lower than people expect, and the mismatch gets misread as missing data.

这种过滤会产生明显的结果:报告中的项目计数往往低于人们的预期,这种差异常被误读为数据丢失。

Where the line between reading and writing sits

读取与写入的界限在哪里

This is the question that deserves the least hedging. Parsing stays local. Extraction, file reads, rule matching and scoring all run on your device. Post text does not cross the network. Results stay local. The score and the list are held in memory and are not submitted anywhere.

这是最不需要含糊其辞的问题。解析过程完全在本地进行。提取、文件读取、规则匹配和评分都在你的设备上运行。帖子文本不会通过网络传输。结果保留在本地。评分和列表仅保存在内存中,不会提交到任何地方。

Only deletion needs authorization. Removing posts calls the platform API, which requires an authorized connection. That step uses delete permission and does not upload archive content. The dividing line is between reading and writing. Once you know where it falls, the architectural questions answer themselves.

只有删除操作需要授权。删除帖子会调用平台 API,这需要经过授权的连接。该步骤仅使用删除权限,不会上传存档内容。读取与写入的界限就在这里。一旦你明确了这一点,架构上的疑问便迎刃而解。

Why the count never matches the platform

为什么计数永远与平台显示不一致

A mismatch is normal, and sorting the causes stops you misreading it.

不一致是正常的,理清原因可以避免误读。

  • Time gap. The archive is a snapshot from the day you requested it, so anything posted since is absent. 时间差。 存档是你申请当日的快照,因此之后发布的内容都不会包含在内。
  • Deleted content. The archive keeps posts you removed afterwards, which no longer appear on the platform. 已删除内容。 存档保留了你后来删除的帖子,而这些帖子在平台上已不再显示。
  • Reposts and quotes. Counting rules differ from the page display, and the gap can run into the hundreds. 转发和引用。 计数规则与页面显示不同,差距可能达到数百条。
  • Media-only posts. No text means no text match, but the post still appears on the timeline. 纯媒体帖子。 没有文本意味着没有文本匹配,但帖子仍会出现在时间线上。

With those four in hand, the correct comparison becomes obvious. Match archive entry totals against the post total on the platform, never against the risk list, which has already been filtered once.

掌握了这四点,正确的对比方式就显而易见了。应将存档的总条目数与平台上的帖子总数进行对比,而不是与已经过一次过滤的风险列表进行对比。

Knowing where the data comes from turns the report from a verdict into a chain you can question. Questioning it is the point.

了解数据来源,能让这份报告从一个“最终判决”变成一个你可以质疑的证据链。而质疑,正是其意义所在。