feat(csp): CSP 规则管理功能#1348
Conversation
新增 CSP (Content-Security-Policy) 规则管理模块,支持移除或修改网页 CSP 头。 功能特性: - 全局开关:一键移除所有网页 CSP 头,无需配置规则 - 规则管理:创建/编辑/删除/启用/禁用 CSP 规则 - 匹配模式:支持精确匹配、通配符、正则表达式、域名匹配四种模式 - 模式匹配引擎:参考 wproxy/whistle 规范实现 - *.domain 单级子域 / **.domain 多级子域 / ***.domain 根域+多级子域 - ^ 前缀路径通配符:* 单级 / ** 多级 / *** 任意字符 - 协议通配符 http*:// / 混合通配符 test.abc**.com - 模式测试:Drawer 内置测试工具,实时验证匹配结果 - 帮助文档:右侧 Drawer 展示匹配模式指南 - 优先级自动递增:创建/更新时自动避免 priority 冲突 技术实现: - 基于 chrome.declarativeNetRequest API 拦截并修改响应头 - Service/Client/Repo 三层架构,直接回调模式确保 DNR 规则实时更新 - chrome.storage.local 持久化配置和规则数据 - 63 个单元测试覆盖所有匹配模式 新增文件: - src/app/repo/cspRule.ts (数据层) - src/app/service/service_worker/cspRule.ts (服务层) - src/app/service/service_worker/cspInterceptor.ts (拦截器) - src/pages/options/routes/CSPRule/index.tsx (UI 页面) - src/pkg/utils/patternMatcher.ts (匹配引擎) - tests/pkg/utils/patternMatcher.test.ts (单元测试)
|
级别提这么高吗?我觉得做在设置中就差不多了 |
- 从主侧边栏移除独立菜单/路由,改为在 Tools 页面以卡片形式呈现 - 卡片仅展示全局开关、规则启用/总数摘要和"管理规则"入口 - 完整的规则表格、创建/编辑、模式测试移入 800px Drawer - 帮助指南改由卡片标题栏的问号图标触发,与开发工具卡片视觉对齐
|
在 #1264 说到了,改为modify header的功能,我正有此意,看现在的模式也很容易的修改,具体如何实施还需要考虑一下 另外这个功能一般用户应该很少用到,也不是很重要/核心的功能,我觉得放到tools中更好(我已经进行了调整):
|
|
我修改一下 感觉 pattern 这块有点问题 我参考了一下吧。再配合一下 DNR的设计
example.com: example.com, sub.example.com, a.b.example.com abc123: invalid
由单一 regex: 这样的话比较直观 |
|
进展如何,还需要我支持什么不~ |
主要在于卡在这个url匹配的问题 另外是 CodFrm他好像在搞UI重构,想先等那个定下来再看看 |
|
然后上面又影响到 脚本猫 的定位 |

新增 CSP (Content-Security-Policy) 规则管理模块,支持移除或修改网页 CSP 头。
功能特性:
技术实现:
新增文件:
Checklist / 检查清单
Description / 描述
Screenshots / 截图
成功截图

测试代码
历史讨论:#1264