lukeslp/antisocial

GitHub: lukeslp/antisocial

基于三层验证机制的跨平台账户发现工具,用于查找被遗忘的社交媒体账户并显著降低误报率。

Stars: 1 | Forks: 0

# Antisocial 通过三层验证机制,在 30 多个社交媒体平台上查找被遗忘的账户。 ![Python](https://img.shields.io/badge/python-3.10%2B-blue?style=flat-square) ![FastAPI](https://img.shields.io/badge/fastapi-0.100%2B-009688?style=flat-square) ![React](https://img.shields.io/badge/react-19-61dafb?style=flat-square) ![Playwright](https://img.shields.io/badge/playwright-browser_automation-2EAD33?style=flat-square) ![License](https://img.shields.io/badge/license-MIT-green?style=flat-square) [![在线演示](https://img.shields.io/badge/live-dr.eamer.dev%2Fantisocial-cyan?style=flat-square)](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, 侦察工具, 威胁情报, 实时处理, 密码管理, 开发者工具, 数据导出, 无后门, 浏览器自动化, 特征检测, 用户名枚举, 社交媒体侦查, 系统独立性, 网络安全, 网络足迹, 背景调查, 自动化攻击, 账号发现, 运行时操纵, 逆向工具, 隐私保护