disclose/chrome-extension-v2

GitHub: disclose/chrome-extension-v2

一款 Chrome 浏览器扩展,通过实时查询 disclose.io 目录,向用户展示当前访问网站的漏洞披露政策与安全港成熟度。

Stars: 0 | Forks: 0

disclose.io — know instantly if a site welcomes security researchers # disclose.io — 浏览器扩展 ### 这个网站重视安全吗?一眼便知。

CI CodeQL OpenSSF Scorecard Latest release MIT license Manifest V3 TypeScript strict Bun

一款免费、开源的 Chrome 扩展,它可以向您展示——对于您访问的任何网站——该网站是否拥有安全且公开的途径来报告安全问题。这是衡量其可信度的一个隐含信号。 Walkthrough: the popup across Level 5, safe harbor, VDP, and not-listed states *[disclose.io 项目](https://disclose.io)的一部分 · [directory.disclose.io](https://directory.disclose.io) · [lookup.disclose.io](https://lookup.disclose.io)*
## 功能介绍 当您打开一个网站时,工具栏上的 disclose.io 图标会告诉您该网站是否**欢迎安全研究人员**——这意味着它发布了一种明确的方式来报告安全问题,并且(理想情况下)承诺不会惩罚这样做的人。 打开弹窗,您将获得通俗语言的详细信息:它是否有**安全港(safe harbor)**条款?是否有**漏洞赏金(bug bounty)**计划?是否发布了**政策(policy)**和 **security.txt**?以及直接来自 disclose.io 目录的整体**披露成熟度**评分。只需点击一下,即可执行更深入的实时查询以获取安全联系方式。 无需账号。无需跟踪。它只会发送网站的**域名**——绝不会发送您的 URL、您的页面或有关您的任何信息。 ## 为什么这很重要——即使您从不报告漏洞 大多数人永远不会提交漏洞报告。那么,您为什么要关心一个网站是否“欢迎安全研究人员”呢? 因为这是您能获得的最清晰、最诚实的信号之一,它反映了该公司**在安全方面是否真正做好了准备**——进而言之,反映了您能在多大程度上信任它会妥善处理您的数据、资金和时间。 想想一家公司发布真正的漏洞披露计划需要具备什么条件: - **有人负责安全**并且可以联系得上——而不是石沉大海。 - 有一个**流程**来接收问题、对其进行分类并真正*修复*它。 - 法务部门已经签署了**安全港(safe harbor)**条款——这是一项公开的承诺,保证不会起诉那些出于善意报告漏洞而不是利用漏洞的黑客。 - 并且它是**被持续维护的**,而不是发布一次就被抛之脑后。 只有当其背后的机制成熟时,一家公司才能达到这种境界。这就是核心洞察:**披露成熟度是安全成熟度的可见指标——而安全成熟度又是可信度的指标。** 这就像餐厅的开放式厨房在安全领域的体现。愿意接受监督本身就是一种信号。 反之亦然。一个**无法报告问题**的网站——或者一个威胁试图警告它的人的网站——也在向您传递某种信息,告诉您在关键时刻它将如何对待*您的*安全。 这款扩展程序将过去需要专家才能做出的判断,转变为您在访问每个网站时的一瞥即知。 ## 徽章的含义
Level 5 — best-practice Safe harbor Has a channel Not listed
✨ Best practice (Level 5)
A clear, mature, researcher-safe disclosure program. The gold standard.
✓ Welcomes researchers
Full safe harbor — it accepts security research and protects good-faith reporters.
✓ Has a channel
There's a way to report a security issue, but without full safe-harbor protection.
⚠ Not listed
No published way to report security problems. Researchers may have nowhere to turn.
工具栏图标的颜色也直观地表达了同样的信息——紫色越深意味着成熟度越高——因此您甚至不需要打开弹窗就能获取信号。 ## 安装 **从发布版本安装(无需构建):** 1. 从[最新发布版本](https://github.com/disclose/chrome-extension-v2/releases/latest)下载 **`disclose-extension.zip`** 并解压。 2. 打开 `chrome://extensions` → 开启右上角的**开发者模式**(Developer mode)。 3. 点击**加载已解压的扩展程序**(Load unpacked),然后选择解压后的文件夹。 4. 点击工具栏上的拼图图标 🧩 并**固定**(pin) disclose.io,以便徽章保持可见。 **自行构建(开发者模式):** 1. 克隆仓库并进行构建: bun install bun run build # 生成 dist/ 2. 打开 `chrome://extensions` → 开启右上角的**开发者模式**(Developer mode)。 3. 点击**加载已解压的扩展程序**(Load unpacked),然后选择 **`dist/`** 文件夹。 4. 点击工具栏上的拼图图标 🧩 并**固定**(pin) disclose.io,以便徽章保持可见。 进行任何更改后:运行 `bun run build`,然后在扩展卡片上点击**重新加载 ↻**(reload)。 ## 隐私至上 - 它只会发送当前站点的**域名**(例如 `example.com`)——绝不会发送您的 URL、查询字符串或页面内容。 - 请求是**匿名的**:没有 cookie,没有账号,没有标识符。 - 目录检查会自动运行;而更深层次的 `lookup.disclose.io` 查询仅会在**您**点击“Look this up”时才会运行。 - 结果会本地缓存在 `chrome.storage.session` 中,并在浏览器重启时清除。不存储任何浏览历史记录。 - `host_permissions` 仅限于 `directory.disclose.io` 和 `lookup.disclose.io` —— 该扩展无法访问任何其他网站。 完整政策:**[disclose-extension-privacy.pages.dev](https://disclose-extension-privacy.pages.dev/)**。 ## 工作原理 - 在每次顶级框架导航时,MV3 service worker 会获取活动标签页的 eTLD+1,并查询 `directory.disclose.io/?q=` 以匹配相应的计划。 - 匹配结果会使用与 `lookup.disclose.io` 服务器相同的托管域名 + 实体匹配逻辑进行过滤,因此,托管在平台上的政策不会导致所有计划都匹配成功。 - 成熟度/结论和图标颜色源自匹配到的计划(`src/lib/maturity.ts`)。 - 当您运行实时查询时,弹窗会调用 `POST https://lookup.disclose.io/api/lookup` 以获取更丰富的信息(security.txt、安全页面探测、报复历史记录叠加层)。 无需新的基础设施——它直接调用现有的 disclose.io 目录和查询服务。 ``` flowchart LR P["Popup
(popup.ts)"] -- "getEvaluation / runLookup" --> W["MV3 service worker
(background.ts)"] W -- "domain only" --> D["directory.disclose.io"] W -- "on-demand
POST /api/lookup" --> L["lookup.disclose.io"] W -- "icon state" --> I["Toolbar icon
(chrome.action)"] W <--> C["chrome.storage.session
cache"] ``` ## 开发说明 ``` bun install bunx playwright install chromium # one-time: Chromium the test runner loads the extension into bun run build # esbuild bundle + sharp icon rendering → dist/ bun run test # mocked Playwright suite + axe-core a11y scan SMOKE=1 bun run test # also hits production directory.disclose.io as a sanity check bun run package # → disclose-extension.zip for Web Store upload ```
项目结构 ``` src/ background.ts # MV3 service worker: tab listeners, debounce, dedupe popup/ # popup HTML, TypeScript, brand CSS (#673AB6 design tokens) lib/ directory.ts # live directory.disclose.io poll (HTML → ProgramSnapshot) match.ts # eTLD+1, hosting-domain filter, entity matching maturity.ts # icon-state derivation + verdict copy lookup.ts # POST lookup.disclose.io/api/lookup icon.ts # chrome.action setIcon/setTitle cache.ts # chrome.storage.session + in-flight dedupe scripts/build.ts # esbuild + brand icon rendering (ICON_THEMES) store/ # Chrome Web Store package: privacy policy, listing, assets docs/marketing/ # README screenshots + walkthrough frames ```
弹窗和图标遵循 **disclose.io 设计系统**(品牌色 `#673AB6`,真正的 disclose.io 标志)。设计令牌(Design tokens)位于 `src/popup/popup.css` 的 `:root` 和 `scripts/build.ts` 的 `ICON_THEMES` 中。 ## disclose.io 的一部分 disclose.io 是一个与供应商无关的非营利性项目,旨在推动漏洞披露最佳实践的普及——包括**双边安全港**、通俗易懂的条款,以及在黑客与其所帮助的组织之间建立善意认可的标志。 [disclose.io](https://disclose.io) · [条款 (dioterms)](https://github.com/disclose/dioterms) · [列表 (directory)](https://directory.disclose.io) · [认证标志 (dioseal)](https://github.com/disclose/dioseal) · [lookup.disclose.io](https://lookup.disclose.io) ## 许可证 [MIT](LICENSE) © The disclose.io Project。免费使用、修改和分发——秉承 disclose.io 开放、与供应商无关的使命精神。
标签:TypeScript, 安全合规, 安全插件, 浏览器扩展, 漏洞披露, 特征检测, 网络代理, 自动化攻击