lukeslp/antisocial
GitHub: lukeslp/antisocial
基于三层验证机制的跨平台账户发现工具,用于查找被遗忘的社交媒体账户并显著降低误报率。
Stars: 1 | Forks: 0
# Antisocial
通过三层验证机制,在 30 多个社交媒体平台上查找被遗忘的账户。





[](https://dr.eamer.dev/antisocial/)
## 概述
那个你在 2014 年创建并完全忘记的账户?它还在那里。
大多数用户名查找工具只是检查 URL 是否返回 200 状态码。这直到失效前都有效——当平台无论账户存在与否都返回相同页面时,误报率约为 30-40%。
本项目使用三层验证:首选官方 API,其次是浏览器自动化,最后是 HTTP 内容分析。将误报率降至约 5%。虽非完美——网络爬取从未完美过——但明显优于仅依赖状态码。
## 功能特性
- 三层验证:官方 API(最可靠)、浏览器自动化和 HTTP 内容分析——在前一层不可用时依次启用
- 搜索 30 多个平台,包括 GitHub、Reddit、Bluesky、Twitter、Instagram、TikTok、LinkedIn、YouTube
- 自动尝试平台特定的用户名模式(例如 `luke.steuber` → `luke-steuber` 用于 GitHub)
- 随平台响应实时流式传输结果,优先处理高流量站点
- 确认、标记或移除找到的账户;将筛选后的结果导出为 CSV/JSON
- 深度搜索模式通过 WhatsMyName 数据库添加 500 多个平台
- 运行 200 个并发请求,带有基于信号量(semaphore)的速率保护
## 安装
```
git clone https://github.com/lukeslp/antisocial.git
cd antisocial
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
playwright install chromium
python run.py
```
服务器运行于 http://localhost:8000。API 文档位于 http://localhost:8000/docs。
## 使用方法
开始搜索:
```
curl -X POST http://localhost:8000/api/searches \
-H "Content-Type: application/json" \
-d '{"username": "example", "tiers": [1, 2, 3]}'
```
查看进度:
```
curl http://localhost:8000/api/searches/1
```
获取结果:
```
curl http://localhost:8000/api/searches/1/results
```
深度搜索(通过 WhatsMyName 搜索 500+ 平台):
```
curl -X POST http://localhost:8000/api/searches \
-H "Content-Type: application/json" \
-d '{"username": "example", "tiers": [1, 2, 3], "deep_search": true}'
```
## API 端点
| 端点 | 方法 | 描述 |
|----------|--------|-------------|
| `/api/health` | GET | 健康检查 |
| `/api/stats` | GET | 搜索总数、账户数、平台数 |
| `/api/searches` | POST | 开始新的搜索 |
| `/api/searches` | GET | 列出所有搜索 |
| `/api/searches/{id}` | GET | 搜索详情和进度 |
| `/api/searches/{id}/results` | GET | 找到的账户 |
| `/api/searches/{id}/checks` | GET | 所有已检查的平台(添加 `?found=true` 进行筛选) |
| `/api/platforms` | GET | 支持的平台 |
| `/api/accounts` | GET | 所有账户(通过 `?status=confirmed\|false_positive` 筛选) |
| `/api/accounts/{id}` | PATCH | 更新账户状态 |
| `/api/accounts/bulk-update` | POST | 批量状态更新 |
| `/api/accounts/{id}/feedback` | POST | 准确性反馈(1=正确,-1=不正确,0=清除) |
| `/api/accuracy` | GET | 各平台准确性统计 |
## 配置
创建 `.env` 文件:
```
DEBUG=false
PORT=8000
DATABASE_URL=sqlite+aiosqlite:///./data/accounts.db
```
`backend/config/settings.py` 中的关键设置:
- `max_concurrent_requests`: 200
- `request_timeout`: 5s
- 置信度阈值:API (95%), Browser (85%), HTTP (70%)
## 架构
```
backend/
├── api/ # FastAPI REST API
├── config/ # Settings and platform definitions
├── core/ # Search orchestration + username variations
├── db/ # SQLAlchemy models (Search, Account, PlatformCheck)
└── platforms/
├── base.py # BaseVerifier + VerificationResult
└── verifiers/ # api.py, browser.py, http.py, wmn.py
```
通过编辑 `backend/config/platforms.yaml` 添加新平台:
```
newplatform:
name: New Platform
category: social
tier: 3
enabled: true
url_template: "https://example.com/{username}"
verification_method: http
```
对于需要自定义逻辑的平台,在相应的验证器文件中添加 `_verify_{platform_id}()` 方法。
## 技术栈
- 后端:FastAPI, SQLAlchemy, Playwright, httpx
- 数据库:SQLite,支持异步 (aiosqlite)
- 前端:React, Vite, Tailwind CSS, shadcn/ui
- 在线演示:https://dr.eamer.dev/antisocial/
## 许可证
MIT — 详见 LICENSE 文件。
## 作者
**Luke Steuber** · [lukesteuber.com](https://lukesteuber.com) · [@lukesteuber.com](https://bsky.app/profile/lukesteuber.com)
标签:API 安全, AV绕过, ESC4, FastAPI, OSINT, Playwright, Python, React, Syscalls, 侦察工具, 威胁情报, 实时处理, 密码管理, 开发者工具, 数据导出, 无后门, 浏览器自动化, 特征检测, 用户名枚举, 社交媒体侦查, 系统独立性, 网络安全, 网络足迹, 背景调查, 自动化攻击, 账号发现, 运行时操纵, 逆向工具, 隐私保护