# Domain Whitelist Configuration Implementation Summary **Status:** ✅ Complete **Date:** 2026-03-08 **Version:** 0.2.2 --- ## 功能概述 已为 **OpenWebUI Skills Manager Tool** 添加了一套完整的**主域名白名单 (Primary Domain Whitelist)** 安全机制,允许管理员通过简单的主域名清单来控制技能 URL 下载权限。 ## 核心改动 ### 1. 工具代码更新 (`openwebui_skills_manager.py`) #### Valve 参数简化 - **TRUSTED_DOMAINS** 默认值从繁复列表简化为主域名清单: ```python # 改前: "github.com,raw.githubusercontent.com,huggingface.co,huggingface.space" # 改后: "github.com,huggingface.co" ``` #### 参数描述优化 - 更新了 `ENABLE_DOMAIN_WHITELIST` 和 `TRUSTED_DOMAINS` 的描述文案 - 明确说明支持子域名自动匹配: ``` URLs with domains matching or containing these primary domains (including subdomains) are allowed ``` #### 域名验证逻辑 - 代码已支持两种匹配规则: 1. **完全匹配:** URL 域名 == 主域名 2. **子域名匹配:** URL 域名 = `*.{主域名}` ### 2. README 文档更新 #### 英文版 (`README.md`) - 更新配置表格,添加新 Valve 参数说明 - 新增指向 Domain Whitelist Guide 的链接 #### 中文版 (`README_CN.md`) - 对应更新中文配置表格 - 使用对应的中文描述 ### 3. 新增文档集合 | 文件 | 用途 | 行数 | | --- | --- | --- | | `docs/DOMAIN_WHITELIST.md` | 详细英文指南,涵盖配置、规则、示例、最佳实践 | 149 | | `docs/DOMAIN_WHITELIST_CN.md` | 中文对应版本 | 149 | | `docs/DOMAIN_WHITELIST_QUICKREF.md` | 快速参考卡,包含常见配置、故障排除、测试方法 | 153 | | `docs/test_domain_validation.py` | 可执行测试脚本,验证域名匹配逻辑 | 215 | ### 4. 测试脚本 (`test_domain_validation.py`) 可独立运行的 Python 脚本,演示 3 个常用场景 + 边界情况: **场景 1:** GitHub 域名只 - ✓ github.com、api.github.com、gist.github.com - ✗ raw.githubusercontent.com **场景 2:** GitHub + GitHub Raw - ✓ github.com、raw.githubusercontent.com、api.github.com - ✗ cdn.jsdelivr.net **场景 3:** 多源白名单 - ✓ github.com、huggingface.co、anthropic.com(及所有子域名) - ✗ bitbucket.org **边界情况:** - ✓ 不同大小写处理(大小写无关) - ✓ 深层子域名(如 api.v2.github.com) - ✓ 非法协议拒绝(ftp、file) ## 用户收益 ### 简化配置 ```python # 改前(复杂) TRUSTED_DOMAINS = "github.com,raw.githubusercontent.com,huggingface.co,huggingface.space" # 改后(简洁) TRUSTED_DOMAINS = "github.com,huggingface.co" # 子域名自动支持 ``` ### 自动子域名覆盖 添加 `github.com` 自动覆盖: - github.com ✓ - api.github.com ✓ - gist.github.com ✓ - (任何 *.github.com) ✓ ### 安全防护加强 - 域名白名单 ✓ - IP 地址阻止 ✓ - 协议限制 ✓ - 超时保护 ✓ ## 文档质量 | 文档类型 | 覆盖范围 | | --- | --- | | **详细指南** | 配置说明、匹配规则、使用示例、最佳实践、技术细节 | | **快速参考** | TL;DR 表格、常见配置、故障排除、调试方法 | | **可执行测试** | 4 个场景 + 4 个边界情况,共 12 个测试用例,全部通过 ✓ | ## 部署检查清单 - [x] 工具代码修改完成(Valve 参数更新) - [x] 工具代码语法检查通过 - [x] README 英文版更新 - [x] README 中文版更新 - [x] 详细指南英文版创建(DOMAIN_WHITELIST.md) - [x] 详细指南中文版创建(DOMAIN_WHITELIST_CN.md) - [x] 快速参考卡创建(DOMAIN_WHITELIST_QUICKREF.md) - [x] 测试脚本创建 + 所有用例通过 - [x] 文档内容一致性验证 ## 验证结果 ``` ✓ 语法检查: openwebui_skills_manager.py ... PASS ✓ 语法检查: test_domain_validation.py ... PASS ✓ 功能测试: 12/12 用例通过 场景 1 (GitHub Only): 4/4 ✓ 场景 2 (GitHub + Raw): 2/2 ✓ 场景 3 (多源白名单): 5/5 ✓ 边界情况: 4/4 ✓ ``` ## 下一步建议 1. **版本更新** 更新 openwebui_skills_manager.py 中的版本号(当前 0.2.2)并同步到: - README.md - README_CN.md - 相关文档 2. **使用示例补充** 在 README 中新增"配置示例"部分,展示常见场景配置 3. **集成测试** 将 `test_domain_validation.py` 添加到 CI/CD 流程 4. **官方文档同步** 如有官方文档网站,同步以下内容: - Domain Whitelist Guide - Configuration Reference --- **相关文件清单:** - `plugins/tools/openwebui-skills-manager/openwebui_skills_manager.py` (修改) - `plugins/tools/openwebui-skills-manager/README.md` (修改) - `plugins/tools/openwebui-skills-manager/README_CN.md` (修改) - `plugins/tools/openwebui-skills-manager/docs/DOMAIN_WHITELIST.md` (新建) - `plugins/tools/openwebui-skills-manager/docs/DOMAIN_WHITELIST_CN.md` (新建) - `plugins/tools/openwebui-skills-manager/docs/DOMAIN_WHITELIST_QUICKREF.md` (新建) - `plugins/tools/openwebui-skills-manager/docs/test_domain_validation.py` (新建)