alekslinde/justcheckingmate
GitHub: alekslinde/justcheckingmate
一款基于规则引擎的澳大利亚本地化诈骗检测工具,支持对链接、短信、邮件和电话号码进行隐私安全的即时分析。
Stars: 0 | Forks: 1
# 只是检查一下,老兄 🦘
澳大利亚人的纯粹诈骗检测器。粘贴可疑链接、诈骗短信、钓鱼邮件或诈骗电话号码,即可获得即时判定 —— 无需注册,不留记录,不售卖数据。
专为澳大利亚人打造,内置对本地政府域名、银行、电话号码格式的认知,以及本地真实流行的诈骗手法。
## 功能介绍
### 诈骗检测
粘贴任何可疑内容 —— 链接、文本、整封邮件、电话号码或截图 —— 即可获得判定结果(安全 / 可疑 / 极可能是诈骗),并附带清晰明了的每一个危险信号详细说明。
无需繁琐地选择输入类型。**应用会自动识别你提供的内容**,并运行相应的检查,将发现的每一项分别标记为链接 🔗、邮件 📧、电话 📞 或消息 💬。即使你粘贴了一大堆混合内容,它也会逐一分析。
其底层运行机制包括:
- **链接** — 根据实时的恶意软件/钓鱼网站黑名单(来自 abuse.ch 的 [URLhaus](https://urlhaus.abuse.ch))检查 URL,展开短链接,检测可疑的顶级域名 (TLD)、IP 地址托管、针对澳大利亚品牌的域名仿冒,以及钓鱼关键词。
- **短信** — 检测紧急催促用语、利益诱惑、索取敏感信息、嵌入的可疑链接,以及冒充政府机构。
- **邮件** — 包含所有短信检测项目,外加发件人域名分析、通用问候语检测,以及从原始邮件头直接解析的**邮件身份验证**(SPF / DKIM / DMARC)。转发邮件会被自动还原为原始诈骗邮件,同时还会检测并标记**追踪像素**。
- **电话号码** — 线路类型识别(手机 / 固定电话 / VoIP / 费率电话 / 免费电话)、澳大利亚高费率号段检测、响一声挂断 (Wangiri) 和国际高费率风险,以及伪装风险提示。
**截图与二维码:** 拖放或上传图片,它会优先尝试解码二维码(通过 jsQR 在客户端完成),如果失败则回退到 OCR(Tesseract.js)提取文本 —— 接着对提取到的内容执行上述所有检查。
**转发检测:** 在使用手机?将可疑邮件转发到应用的收件箱,它会直接将判定结果通过邮件回复给你。邮件抵达后即被读取,不留任何副本。
### 举报诈骗
看到可疑内容了?提交举报,让其他人能有所防范。提交过程通过速率限制、蜜罐字段、时间检测和重复识别来防止机器人恶意提交。在我们的检测器中评分过低(即内容看起来合法)的举报会被标记为待审核,而不是直接发布。
### 学习指南
[`/learn`](app/learn/page.tsx) 指南涵盖了如何识别诈骗、邮件身份验证(SPF/DKIM/DMARC)的工作原理、常见诈骗手法、如果受骗该怎么办以及在哪里举报。
### 英语或澳式英语
语言切换按钮可以将整个界面在标准**英语**和地道的**澳式英语**之间切换 —— 检测效果相同,只是表达方式不同。
## 最新举报
主页展示了最近社区举报的诈骗信息实时动态。联系邮箱、IP 地址以及任何其他结构化的个人身份信息 (PII) 都会在显示前被自动清除。
相同的数据可通过 `GET /api/reports?limit=50`(最大 200)以 JSON 格式获取。
## 在本地运行
```
npm install
npm run dev
```
本地开发无需配置数据库 —— 应用会自动回退到本地 SQLite 文件(`local.db`)。
如果需要持久化数据库(用于预发布或生产环境),请在 [turso.tech](https://turso.tech) 创建一个免费数据库,然后执行:
```
cp .env.local.example .env.local
# 填写 TURSO_DATABASE_URL 和 TURSO_AUTH_TOKEN
```
Schema 会在首次运行时自动创建 —— 无需手动运行数据库迁移。
打开 [http://localhost:3000](http://localhost:3000)。
### 常用命令
```
npm test # run the Vitest suite
npm run lint # ESLint (Next 15.5 + strict react-hooks rules)
npm run seed # seed the database with sample reports
npm run build # production build
```
## 技术栈
- [Next.js 15](https://nextjs.org) (App Router) + [React 19](https://react.dev)
- TypeScript (strict 模式) + [Tailwind CSS v4](https://tailwindcss.com)
- [Vitest](https://vitest.dev) 用于测试
- [libSQL / Turso](https://turso.tech) 用于生产环境,本地开发回退至 SQLite
- [jsQR](https://github.com/cozmo/jsQR) — 客户端二维码解码
- [Tesseract.js](https://tesseract.projectnaptha.com) — 用于截图上传的客户端 OCR
- [URLhaus](https://urlhaus.abuse.ch) (abuse.ch) — 实时恶意软件/钓鱼 URL 黑名单
## 检测逻辑
所有诈骗检测均基于**规则**并在 [`lib/`](lib/) 目录中运行 —— 主要是 [`scamDetector.ts`](lib/scamDetector.ts),配合 [`phoneIntel.ts`](lib/phoneIntel.ts)、[`emailHeaders.ts`](lib/emailHeaders.ts)、[`urlSanitizer.ts`](lib/urlSanitizer.ts) 等模块。它使用了关键词列表、域名白名单/黑名单、正则表达式模式以及加权评分系统。**不使用机器学习,不使用 LLM,也不会将用户内容发送到任何地方进行评分。**
仅有的外部请求只会发送到固定且受信任的基础设施 —— URLhaus 黑名单 以及向已知短链接主机的白名单发送 HEAD 请求以展开短链接。这两者都不涉及将你粘贴的内容发送到异端设备进行分析。
由于逻辑是基于启发式且公开透明的,因此我们有意将其开源 —— 隐藏关键词列表并不能阻止高明的诈骗者(他们早就知道什么会触发垃圾邮件过滤器),反而会增加社区贡献改进的难度。
## 免责声明
本工具提供尽力而为的检测 —— 它不保证 100% 识别出所有诈骗,而且诈骗者会不断改变他们的策略。**切勿完全依赖此工具。** 如有疑虑:不要点击,不要回拨,不要分享信息。
如需向权威机构举报:
- [Scamwatch (ACCC)](https://www.scamwatch.gov.au)
- [ReportCyber (ASD)](https://www.cyber.gov.au/report)
- [IDCARE (身份盗窃)](https://www.idcare.org)
标签:信息验证, 反诈骗, 威胁情报, 开发者工具, 澳大利亚, 自动化攻击, 钓鱼检测