安全扫描数据接口

全量插件安全审查数据的机器可读接口——全量快照、单插件 JSON、徽章 SVG。全部为静态、缓存、可免费引用的数据。

接口地址
URL说明更新
/data/security-scan.json全量快照——所有插件的扫描结果(verdict、counts、类别、hash、版本)每日 00:00 UTC
/data/security-scan.schema.json快照对应的 JSON Schema——供第三方校验数据契约随字段新增更新
/artifact/<id>.json单插件 JSON——派生徽章状态 + 扫描记录 + 版本信息每日 00:00 UTC
/badges/<id>-shield.svgGitHub 风徽章(dsh.so security + 等级)每日 00:00 UTC

JSON 接口支持跨域读取:Access-Control-Allow-Origin: *,无需 API Key 或注册。

徽章等级

由扫描 verdict 通过 deriveBadgeStatesrc/scripts/badge-state.ts)派生。判定顺序:outdated → critical → high-risk → warning → stale → passed

等级条件含义
critical badgeverdict = fail阻断级严重发现(密钥 / 网络外传 / 破坏性 / 挖矿)
high-risk badgeverdict = warn && critical > 0非阻断严重发现(动态执行 / shell / 安装脚本 / 混淆)
warning badgeverdict = warn && critical = 0仅警告级发现
passed badgeverdict = pass无严重/警告发现(允许 info)
outdated badgescan.commitSha ≠ plugin.latestCommitSha仓库有新提交,结果不再代表当前代码
stale badgepassed && scannedAt 超过 30 天上次通过扫描已超过 30 天
unscanned badge无扫描记录未扫描(新插件或扫描失败)
快照外层结构

/data/security-scan.json 是带快照外层结构的单个 JSON 对象,不是裸的插件 id 映射。消费者应忽略未知外层字段。

字段类型语义
generatedstring (YYYY-MM-DD)generatedAt 派生的快照日期
generatedAtstring (ISO 8601)流水线生成快照时持久化写入的时间;不使用网页构建时间
sourcestring快照对应的人工插件注册表页面
schemastring校验每条扫描记录的 schema 绝对地址
updatestring当前流水线更新频率与执行方
licenseobject数据来源与复用条款(需注明来源)
badgeLevelsobject当前徽章等级定义,便于审计
countintegerscans 中插件 id 数量
scansobject插件 id 到扫描记录的映射;键与 plugins.json 的 id 一致
字段语义
字段类型语义
verdictpass|warn|fail扫描结论(见等级表)
countsobject各级发现数量:critical / warning / info
criticalByCategoryobject严重发现按类别分组(shell、code-exec、secrets、network、destructive、obfuscation、install、mining)
filesScannedinteger扫描的源文件数(上限 15)
scannedAtstring (ISO)扫描时间
commitShastring | null扫描时的 HEAD commit SHA——结果仅对该版本有效
pkgVersionstring | null插件自身版本(从 package.json 提取)
pkgDshboolean是否声明 dsh 清单(package.json 的 dsh 字段)
latestCommitShastring | null注册表记录的最新 HEAD(update-plugins 更新,用于 outdated 判定)
latestReleaseTagstring | null最新 GitHub release tag(插件发布版本)

latestCommitShalatestReleaseTagplugins.json 中的插件级元数据,为方便使用也在单插件 JSON 中暴露;流水线回填期间可能为 null

版本绑定

扫描结果仅对扫描时的 commitSha 版本有效。当仓库有新提交(latestCommitSha 前进),徽章自动降级为 outdated,直到每日流水线重新扫描——防止「认证后投毒」。

使用方式

在 README 嵌入徽章:

GitHub-shield
[![dsh.so security](https://www.dsh.so/badges/<id>-shield.svg)](https://www.dsh.so/artifact/<id>/)GitHub-shield badge example

获取单插件数据:

curl https://www.dsh.so/artifact/<id>.json

数据由 dsh.so 流水线从公开 GitHub 仓库聚合(每 2h 发现,每日 00:00 UTC 安全扫描)。字段只增不删:既有字段不会移除或改名,新增字段会同步更新 schema。快照和 schema 可免费引用,需注明来源 dsh.so;新增字段见 更新日志

这页有帮助吗?