User Scanner链接分级体系解析:handle、verified、link三级分类,为什么verified最安全
【免费下载链接】user-scanner🕵️♂️ (2-in-1) Email & Username OSINT suite featuring native MCP support for deep data extraction just from a single Email/Username. Analyzes 550+ actively maintained scan vectors (175+ email / 375+ username) for security research, investigations, and digital footprinting.项目地址: https://gitcode.com/GitHub_Trending/us/user-scanner
User Scanner 是一款 2 合 1 的 Email 与用户名 OSINT 扫描工具,其交叉扫描(cross-scan)功能会对扫描结果中的链接做三级分类:handle、verified、link。本文将用大白话讲清楚这套链接分级体系的设计逻辑,以及为什么在安全研究中verified是可信度最高的一级。
一、什么是链接分级?解决什么问题
做 OSINT 时,最常见的坑是这样的:你扫到一个邮箱,发现某平台的个人简介里写着一个 GitHub 链接。这个链接一定是本人吗?
不一定。任何人都可以把别人的账号 URL 粘贴进自己的简介。User Scanner 的交叉扫描引擎就是为了解决这类"证据强弱"问题,它把每一批扫描结果隐含的新线索(术语叫"pivot 枢轴")按来源平台对它的背书程度分成三级。
分级逻辑的源头在枢轴提取模块:
- 枢轴分类核心代码:pivots.py
- 分级过滤实现:pivots.py
- 官方设计文档:CROSS_SCAN.md
二、三级分类逐个拆解
| 级别 | 含义 | 通俗理解 | 示例 |
|---|---|---|---|
handle | 来源平台自己报告的账号名 | "平台官方告诉你的" | Gravatar 返回的username字段 |
verified | 账号主完成了平台的验证握手 | "平台替你验过真" | Gravatar 的verified_accounts字段 |
link | 账号主手打的自由文本 | "本人自己说的,未必算数" | 简介(bio)里粘贴的链接 |
对应源码中的三个枚举值:
class PivotKind(Enum): HANDLE = "handle" VERIFIED = "verified" LINK = "link"参考:PivotKind 定义
三、为什么 verified 最安全?关键在"验证握手"
verified与普通link的本质区别在于:账号主必须向平台证明自己控制了链接指向的那个账号。
具体有两条路径(见 pivots.py 的模块说明):
- OAuth 连接—— 账号主用目标账号授权登录来源平台(类似"用 GitHub 登录"),平台拿到的是平台间互认的凭证;
rel="me"往返验证—— 平台向目标账号的主页发一个一次性 token,账号主把它贴回自己页面,平台确认后才打上 verified 标记。
也就是说:
- 把别人的URL 粘贴进简介 → 零成本,任何人都能做,所以只算
link; - 为别人的账号完成 OAuth 授权或 token 往返 → 前提是你有那个账号的控制权,做不到,所以
verified几乎排除了冒充可能。
官方文档也明确推荐:"当一条错误链接的代价很高时,就用verified"(CROSS_SCAN.md)。
💡 注意:
verified是"平台验证过链接指向的账号",并不等于"两个账号属于同一个人"——本人也可以绑定自己的小号。它是强信号,不是绝对结论。
四、源码里如何识别 verified 链接
识别规则非常克制,只认两种形态(pivots.py 与 pivots.py):
| 识别方式 | 说明 |
|---|---|
| 平台专用字段 | 字段名属于verified_accounts、verified_links、connected_accounts |
(verified)后缀 | 链接文本后紧跟(verified)标记(大小写不敏感) |
而来自bio、websites、links等自由文本字段的 URL 一律降级为link。判断逻辑在 _pivots_from_links 中:
verified = key in VERIFIED_KEYS or bool(_VERIFIED_SUFFIX_RE.match(value, match.end())) kind = PivotKind.VERIFIED if verified else PivotKind.LINK这个设计的好处是宁缺毋滥:拿不准的线索宁可归为弱证据link,也不会错误升级为verified。
五、实际怎么用?一个参数切换安全级别
User Scanner 通过--cross-links参数让你选择交叉扫描采用哪一级线索(FLAGS.md):
# 默认:使用全部三级线索(all) user-scanner -e target@example.com --cross-scan # 推荐:只使用 handle + verified,丢弃本人手打的链接 user-scanner -e target@example.com --cross-scan --cross-links verified # 最严格:只用平台报告的 handle user-scanner -e target@example.com --cross-scan --cross-links none| 取值 | 采用的线索级别 | 适用场景 |
|---|---|---|
all(默认) | handle + verified + link | 追求覆盖率 |
verified | handle + verified | 误判代价高的正式调查 |
none | 仅 handle | 只信平台官方数据 |
过滤函数实现见 select_pivots,参数枚举见 cross_scan.py。
🎯实用建议:新手调查先用all摸清目标轮廓,锁定重点账号后改用verified复核,可显著降低"简介党"式误判。
六、与 confidence 置信度评分如何配合
级别(link级)与置信度(confidence)是两套互补的机制:
- 级别回答"这条线索怎么来的"——来源平台的背书强度;
- 置信度回答"这个命中多可能是目标本人"——评分见 confidence.py,等级为
confirmed/likely/candidate/conflicting。
通过verified级枢轴命中特定站点时,该结果通常会获得confirmed评级(枢轴同时指定了站点和账号名),并写入报告的pivot_source字段,例如:
{ "extra": { "pivot_source": "verified from Gravatar (verified_accounts)", "confidence": "confirmed" } }完整评分规则见 CROSS_SCAN.md。
七、总结:一张表看懂三级体系
| 维度 | handle | verified | link |
|---|---|---|---|
| 来源 | 平台结构化字段 | 平台验证字段 /(verified)标记 | 简介等自由文本 |
| 伪造难度 | 不可伪造 | 需要目标账号控制权 | 零成本 |
| 可信度 | 高 | 最高 | 低 |
| 默认启用 | ✅ | ✅ | ✅ |
一句话记住:handle 是平台说的,verified 是平台验过的,link 只是本人说的——所以当你无法承受一条假链接的误导时,把--cross-links设为verified,就是 User Scanner 链接分级体系给出的最稳妥答案。
更多参数细节可查阅 FLAGS.md 与 USAGE.md。
【免费下载链接】user-scanner🕵️♂️ (2-in-1) Email & Username OSINT suite featuring native MCP support for deep data extraction just from a single Email/Username. Analyzes 550+ actively maintained scan vectors (175+ email / 375+ username) for security research, investigations, and digital footprinting.项目地址: https://gitcode.com/GitHub_Trending/us/user-scanner
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考