Aliens Eye 指纹缓存机制揭秘:让 AI 用户名扫描器记住每个网站的页面结构,误报大降
【免费下载链接】Aliens_eyeHunt down 840+ social media accounts using AI项目地址: https://gitcode.com/gh_mirrors/al/Aliens_eye
Aliens Eye是一个 AI-OSINT 用户名扫描器,能在 840+ 个社交平台并发搜索同一账号。它的秘密武器之一,是一套轻量级的指纹缓存机制:把每个网站"已确认存在"和"已确认不存在"的页面结构记下来,下次再遇到相似页面时直接加分或减分,从而显著降低误报。本文带你读懂这套机制的设计思路。
用户名扫描器为什么会误判?🤔
很多简单工具只靠 HTTP 状态码判断"账号是否存在"——但现实很残酷:
- 不少网站把不存在的用户也返回200(直接渲染一个"用户不存在"页);
- 有些站点会对游客返回登录墙、反爬拦截页,页面长得和真实主页毫无区别;
- 同一个站点的"404 页"和"主页",标题可能只差几个词。
Aliens Eye 的做法是把每个响应转成30 维特征向量(状态码、标题/meta 中的用户名、DOM 结构、OpenGraph、响应时间等),再由启发式引擎 + 机器学习模型"双评委"投票。而指纹缓存,正是这个特征向量中最"聪明"的两个维度——它让扫描器具备了跨次扫描的"记忆"。
页面指纹:4 个元素画出的"结构素描"🖼️
指纹的原始素材在特征提取阶段生成,见 analyzer.py,共 4 个字段:
| 字段 | 含义 | 打分权重 |
|---|---|---|
title_hash | 页面<title>的 SHA-256 哈希(规范化后) | +2 |
meta_hash | meta 描述文本的哈希 | +1 |
dom_signature | DOM 结构摘要:图片数、表单数、profile/error 区块数 | +1 |
server | 响应头的Server字段 | +1 |
哈希在 fingerprints.py 的build_fingerprint中生成:文本先做小写、去首尾空格、折叠空格的规范化处理再取 SHA-256,所以"User not found" 和 "user NOT found" 会得到相同哈希,而真实内容差异能立刻被区分。
注意设计取向:指纹是结构签名而非页面快照——它不存正文、不存 URL 参数,既省空间,又能天然免疫"用户名不同但页面骨架相同"的变化。
打分与写回:只记"高置信"的样本 🧠
核心类是 FingerprintStore,按站点维护两个列表:found(已确认存在的页面指纹)和not_found(已确认不存在的)。
打分逻辑(score方法,fingerprints.py):当前页面分别与两类指纹逐条比对,匹配项按上表权重累加,得到match_found与match_not_found两个分数。比如一个页面标题、DOM 骨架都和某个"已知 404 页"一致,match_not_found就会明显升高。
写回规则很克制,见 scanner.py:
- 只有结论是Found 或 Not Found且置信度 ≥ 85 的页面才会写入缓存——Maybe 状态的模糊样本一律不记,避免"把错误答案教给未来的自己";
- 完全相同的指纹(4 字段拼接去重)不会重复写入;
- 每类每站最多保留50 条,超出后 FIFO 淘汰,缓存体积永远可控。
指纹如何压低误报?🎯
两个指纹分数作为特征fingerprint_match_found/fingerprint_match_not_found进入 30 维向量(features.py),并在启发式引擎中各带±2 的权重(detector.py)——与"HTTP 200 +5"、"HTTP 404 −10" 处于同一量级。同时这两个特征也是 ML 模型的输入列(model.json),也就是说指纹记忆同时影响着两位"评委"。
效果链条是这样的:扫描 → 高置信结果写入缓存 → 后续扫描同站点时,相似页面被快速"认脸"。扫得越多,缓存越准,误报越少——这是典型的良性飞轮。
缓存在哪里?如何保持可复现?💾
- 存储位置:不在仓库里,而是系统标准用户缓存目录(通过
platformdirs解析),默认路径为fingerprints.json,见 config.py。换机器、清缓存都不影响仓库干净。 - 只读模式:
FingerprintStore(path, read_only=True)会冻结写入(add/save变为空操作)。因为缓存是在扫描过程中边跑边长的,若评分时读"正在变化"的缓存,两次运行结果会不同。所以selfcheck --corpus这类可复现评估场景会自动冻结缓存,机制说明见 WORKING.md 与 replay.py。 - 手动重置:直接删除缓存目录下的
fingerprints.json即可让扫描器"失忆重启"。
小结 ✨
Aliens Eye 的指纹缓存机制做对了几件关键的事:
- 存结构,不存内容:4 字段签名轻小、抗用户名变化;
- 只信高置信样本:置信度 ≥ 85 才写回,杜绝错误记忆自我强化;
- 有限容量:50 条/标签/站点,FIFO 淘汰,长期扫描不膨胀;
- 可冻结、可复现:只读模式让评估结果稳定可比。
如果你想深入了解完整的运行时流程与模块地图,推荐阅读 WORKING.md 和 README.md;上手只需pip install aliens-eye然后运行aliens_eye 你的用户名,指纹记忆会在后台悄悄工作,让每一次扫描比上一次更准。
【免费下载链接】Aliens_eyeHunt down 840+ social media accounts using AI项目地址: https://gitcode.com/gh_mirrors/al/Aliens_eye
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考