didrod205/can-i-be-phished

GitHub: didrod205/can-i-be-phished

通过检查公开 DNS 中的 DMARC/SPF 记录来判断任意域名是否可被邮件伪造,并提供可信机构的防护状态排行榜。

Stars: 1 | Forks: 0

# 我会被钓鱼吗 🎣 **骗子能发出看起来像来自你的医院、学校或慈善机构的电子邮件吗?** 粘贴任何组织的域名并立即查明。它会检查该域名是否强制实施了 **DMARC** —— 这项设置可以阻止任何人伪造其地址 —— 并直截了当地告诉你它是否可以被伪造。无需 API key,在你的浏览器中运行,不会发送任何关于你的信息。 ### 🌐 [**检查任何域名 + 可伪造的受信任机构名单 →**](https://didrod205.github.io/can-i-be-phished/) ``` npx can-i-be-phished stjude.org npx can-i-be-phished list --list charity ``` ``` wish.org · Make-A-Wish Spoofable 🎣 (25/100) • DMARC p=none — monitoring only; forged mail is still delivered to inboxes. • SPF ends in ~all (softfail) — permissive on its own. DMARC: v=DMARC1; p=none; rua=mailto:DMARCAlerts@wish.org; … ``` ## 为什么 电子邮件默认极易被伪造 —— 唯一能阻止骗子在钓鱼邮件中写上 `From: your-children's-hospital.org` 的,是一条设置为 `p=reject` 且名为 **DMARC** 的 DNS 记录。大多数组织从未完成设置。结果是:一份关于受信任机构的快照发现,**48 家中有 27 家** —— 包括 **Make-A-Wish、Salvation Army、Doctors Without Borders(根本没有 DMARC)、MIT、Penn State 和一家儿童医院** —— 没有完全阻止他人冒充自己。该工具允许任何人检查他们信任的机构,并持续维护一份尚未解决此问题的机构名单。 ## 工作原理 ``` DNS-over-HTTPS (Cloudflare / Google, keyless, CORS) ─→ _dmarc. TXT → policy ─→ TXT → SPF ↓ p=reject → protected · p=none / missing → spoofable ``` - **随处运行** — DoH 是 CORS 开放的,且从不进行速率拦截,因此相同的检查可以在 CLI、CI 和**你的浏览器中实时**运行(无需后端,无需密钥)。 - **可辩护性** — 它报告的是域名的**已发布 DNS 策略**。“Spoofable”(可伪造)意味着伪造的 `From:` 邮件可以到达收件箱;这**并不**代表该组织被黑客攻击或其邮件今天正在被伪造。这是一个可修复的配置问题。 - **实时网站**是静态的:一个每日运行的 GitHub Action 会重新检查监控列表并提交一份新的排行榜。无需服务器。 ## 安装与使用 ``` npm i -g can-i-be-phished # then: can-i-be-phished stjude.org # 或者使用 zero-install: npx can-i-be-phished irs.gov ``` ``` can-i-be-phished harvard.edu # check one domain can-i-be-phished list # check the whole trusted-institution watchlist can-i-be-phished list --list childrens-hospital # one category can-i-be-phished stjude.org --json # machine-readable ``` `phishcheck` 是一个更简短的别名。类别:`childrens-hospital`、`charity`、`university`、`school-district`、`government`。 ## 结论的含义 | 结论 | DMARC 策略 | 来自该域名的伪造邮件… | | --- | --- | --- | | **受保护** 🛡️ | `p=reject` | 在进入收件箱前被拒绝 | | **部分受保护** ⚠️ | `p=quarantine`(或 `pct<100`) | 进入垃圾邮件,或者部分漏网 | | **可伪造** 🎣 | `p=none` 或无 DMARC | 被投递到收件箱 | ## 库 ``` import { analyzeDomain } from "can-i-be-phished"; const r = await analyzeDomain("salvationarmyusa.org"); r.verdict.band; // "spoofable" r.dmarc.policy; // "none" r.verdict.reasons; // plain-English why ``` ## 诚实与责任 这里的所有信息都来自域名的**公开** DNS —— 也就是每个邮件服务器都会读取的相同记录。该工具报告的是一个**配置事实**(“该域名的 DMARC 策略为 `p=none`,因此伪造的 From 可以到达收件箱”),而不是指责某个组织已被攻破或此刻正被冒充。它有意**不**解释如何伪造任何人 —— 仅说明域名是否受保护,以及修复方法是发布 `p=reject`。它的目标是**组织**,而非个人。 ## License MIT © [didrod205](https://github.com/didrod205) 这是一条公开的 DNS 记录,只需一行代码即可修复。这仅仅是展示了谁还没落实它。请自行判断。 ## 💖 赞助 觉得这个项目有用?[**在 GitHub 上赞助**](https://github.com/sponsors/didrod205) —— 这有助于这些项目的持续维护。 [![Sponsor](https://img.shields.io/badge/Sponsor-GitHub-db61a2?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/didrod205)
标签:DMARC检查, MITM代理, SYN扫描, 前端工具, 域名解析, 数据可视化, 暗色界面, 电子邮件安全, 自动化攻击, 防钓鱼