# CII Best Practices Assessment

> 基于 [OpenSSF Best Practices Badge (通过级)](https://bestpractices.dev/en/criteria/0) 标准。每次迭代后审视并更新。

**最后更新**: 2026-05-22 &nbsp;|&nbsp; **项目版本**: v0.7.1 &nbsp;|&nbsp; **状态**: 未通过 (22/35, 63%)

---

## 通过级 (Passing) — 35 项

### 基础 (Basics)

| # | 标准 | 状态 | 证据 / 差距 |
| --- | --- | :-: | --- |
| 1 | 项目网站有唯一 URL | ✅ | [GitHub](https://github.com/lexmin0412/dify-chat) + [文档站](https://lexmin0412.github.io/dify-chat-docs/) |
| 2 | 网站说明如何获取/反馈/贡献 | ✅ | [CONTRIBUTING.md](./CONTRIBUTING.md) |
| 3 | 产出 FLOSS 软件 | ✅ | [MIT License](./LICENSE)，OSI 认可 |
| 4 | 提供基本文档 | ✅ | Rspress 文档站点：入门/部署/功能/API 参考 |
| 5 | 网站使用 HTTPS | ✅ | GitHub Pages 强制 HTTPS |
| 6 | 有 Bug 报告机制 | ✅ | [Issue 模板](./.github/ISSUE_TEMPLATE/bug_report.yml) |
| 7 | 支持安全交付 | ⚠️ | HTTPS ✅，无签名发布 |
| 8 | 无泄露私密信息 | ✅ | `.gitignore` 明确忽略 `.env*`，`git ls-files` 确认无追踪 |
| 9 | 支持多语言 | ⚠️ | 全中文，无国际化 |

### 变更控制 (Change Control)

| # | 标准 | 状态 | 证据 / 差距 |
| --- | --- | :-: | --- |
| 10 | 公开版本控制仓库 | ✅ | [GitHub Public Repo](https://github.com/lexmin0412/dify-chat) |
| 11 | 有公开问题追踪器 | ✅ | [GitHub Issues](https://github.com/lexmin0412/dify-chat/issues) + 结构化模板 |
| 12 | 承认外部贡献 | ✅ | [.all-contributorsrc](./.all-contributorsrc) (9 人) + README 贡献者表 |
| 13 | 明确标注小任务 | ✅ | Issues 已打 `good first issue` / `help wanted` 标签（如 #189） |
| 14 | 每个源文件有许可声明 | ❌ | 多数源文件无文件头 License 注释 |

### 报告 (Reporting)

| #   | 标准                 | 状态 | 证据 / 差距                                |
| --- | -------------------- | :--: | ------------------------------------------ |
| 15  | Bug 报告流程已文档化 |  ❌  | 有 Issue 模板但无文字指引 (已知问题在哪查) |
| 16  | 漏洞报告流程已文档化 |  ✅  | [SECURITY.md](./SECURITY.md)               |
| 17  | 漏洞报告非公开处理   |  ✅  | GitHub Security Advisory 支持私有报告      |

### 质量 (Quality)

| # | 标准 | 状态 | 证据 / 差距 |
| --- | --- | :-: | --- |
| 18 | 构建系统可工作 | ✅ | `pnpm build` 可执行，[Docker CI](./.github/workflows/docker-build-push.yaml) |
| 19 | 自动化测试套件 | ❌ | **零测试** — 全仓库无测试文件 |
| 20 | 测试覆盖大部分代码 | ❌ | 无测试，此项自动不满足 |
| 21 | 新功能有测试要求 | ❌ | 无测试策略文档 |
| 22 | 持续集成运行测试 | ❌ | CI 流程无测试步骤 |
| 23 | 修复静态分析告警 | ⚠️ | oxlint 配置了但仅扫描部分文件，28 处 `@ts-expect-error` |
| 24 | 大部分警告已修复 | ⚠️ | `@ts-expect-error` 较多，未设告警上限 |

### 安全 (Security)

| #   | 标准                 | 状态 | 证据 / 差距                                                 |
| --- | -------------------- | :--: | ----------------------------------------------------------- |
| 25  | 基本安全设计原则     |  ⚠️  | API key 通过 `createSafeApp()` 屏蔽；但 45 个已知漏洞未处理 |
| 26  | 输入验证             |  ⚠️  | 路由处理程序验证 appId，但无集中式输入验证层                |
| 27  | 无硬编码凭据         |  ✅  | `.gitignore` 忽略所有 `.env*`，仅 `.env.template` 在仓库中  |
| 28  | 使用标准密码学       |  ✅  | bcryptjs 用于密码哈希；next-auth 内置安全机制               |
| 29  | 安全默认配置         |  ✅  | next-auth 安全默认；CORS 合理                               |
| 30  | 安全交付机制         |  ⚠️  | HTTPS ✅，无签名发布                                        |
| 31  | 已修复漏洞公开披露   |  ❌  | 无安全公告 / Release Notes 无漏洞修复记录                   |
| 32  | 不向用户暴露私密信息 |  ⚠️  | `createSafeApp()` 屏蔽 API key ✅；`.env` 存在风险          |

### 分析 (Analysis)

| #   | 标准         | 状态 | 证据 / 差距                                       |
| --- | ------------ | :--: | ------------------------------------------------- |
| 33  | 静态代码分析 |  ✅  | oxlint + [CodeQL](./.github/workflows/codeql.yml) |
| 34  | 动态分析     |  ❌  | 无 Fuzzing，无运行时安全测试                      |
| 35  | 外部安全审查 |  ❌  | 无安全审查记录                                    |

---

## 汇总

|             | 数量 | 占比 |
| ----------- | ---- | ---- |
| ✅ 通过     | 22   | 63%  |
| ⚠️ 部分通过 | 4    | 11%  |
| ❌ 未通过   | 9    | 26%  |

---

## 计划：达到「通过级」的最小路径

| 优先级 | 动作                            | 解锁项   | 预计投入 |
| :----: | ------------------------------- | -------- | :------: |
|   P1   | 引入 vitest + 至少 1 个测试     | #19      |  2 小时  |
|   P1   | CI 流程增加测试步骤             | #22      | 15 分钟  |
|   P1   | 处理已知漏洞 (`pnpm audit fix`) | #25      |  1 小时  |
|   P2   | 源文件添加 License 头           | #14      |  1 小时  |
|   P2   | 建立代码审查流程 + 分支保护     | #23, #24 |  配置项  |
|   P2   | 签名 Release                    | #7, #30  |  配置项  |

---

## 变更记录

| 日期       | 版本   | 通过项 | 变更说明                                               |
| ---------- | ------ | ------ | ------------------------------------------------------ |
| 2026-05-22 | v0.7.1 | 22/35  | 新增 CodeQL 工作流、Issues 标签、CONTRIBUTING/SECURITY |
| 2026-05-22 | v0.7.1 | 17/35  | 初始评估；修正 #8 #27 为 ✅                            |

---

> **注意**: 本文件是项目自评，用于内部追踪改进进度。如需官方 Badge，请到 [bestpractices.dev](https://bestpractices.dev) 注册并提交正式申请。
